如何才能使类的变量在外部能直接获取,在内部也能使用?

来源:6-7 如何创建和使用Flutter的路由与导航?【边学边做】

colpu

2020-02-14

1、请问static 声明变量和final声明的变量有什么区别?
我的需求是期望类的变量在外部能获取到变量title,在内部也能使用比如:

import 'package:flutter/material.dart';
class StatefulGroup extends StatefulWidget {
  StatefulGroup({Key key}) : super(key: key);
  static String title = 'StatefulWidget与基础组件';
  _StatefulGroupState createState() => _StatefulGroupState();
}

class _StatefulGroupState extends State<StatefulGroup> {
  
  Widget build(BuildContext context) {
    return MaterialApp(
      title: widget.title, // 期望这里能够使用声明的变量
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: null,
    );
  }
}
// 期望能通过类直接访问到**title**这个变量,
print(StatefulGroup.title);
写回答

1回答

CrazyCodeBoy

2020-02-16

  • static 声明的是静态变量;

  • final声明的是常量;

静态变量可以通过类名+.的方式访问,常量不允许被修改;

想在外部访问StatefulGroup的静态变量title只需要通过StatefulGroup.title访问即可,另外,如果访问的地方不在同一个文件中时,不要忘记导入StatefulGroup所在的文件;

import 'StatefulGroup所在的文件.dart';

  

1
1
colpu
为什么widge.title不能访问到呢,如果换成final声明的 便可以访问到?
2020-02-20
共1条回复

Flutter从入门到进阶 实战携程网App 一网打尽核心技术

解锁Flutter开发新姿势,,系统掌握Flutter开发核心技术。

4788 学习 · 3270 问题

查看课程