Dart 有没有办法访问mixin';使用mixin的类中的私有变量是?
在dart中创建Dart 有没有办法访问mixin';使用mixin的类中的私有变量是?,dart,Dart,在dart中创建mixin时,可以像类一样声明属性和方法。声明私有属性/方法时,继承类似乎也应该有权访问此私有成员(例如,请参见下面的示例) 是否有方法使用mixin访问类中的mixin私有变量 如果不可能,我如何在mixin对象中声明成员,但在继承类的接口中使其私有 mixin.dart mixina{ 字符串propertyOne='1'; //任何继承类都无法访问此属性。 int_privateProperty=2; } class.dart B类带A{ 字符串get mixinStri
mixin
时,可以像类一样声明属性和方法。声明私有属性/方法时,继承类似乎也应该有权访问此私有成员(例如,请参见下面的示例)
是否有方法使用mixin
访问类中的mixin
私有变量
如果不可能,我如何在mixin
对象中声明成员,但在继承类的接口中使其私有
mixin.dart
mixina{
字符串propertyOne='1';
//任何继承类都无法访问此属性。
int_privateProperty=2;
}
class.dart
B类带A{
字符串get mixinString=>propertyOne;
//B类无法访问此属性。
int get mixinInt=>\u privateProperty;
}
否。库私有属性意味着您只能在同一个库中表示其名称。在任何其他库中,标识符\u privateProperty
是一个不同的名称,一个专用于另一个库
如果您不能在同一个库中同时声明mixin和class,并且您确实需要访问该属性,那么您可以做很多事情来实现这一点
- 将该属性公开,并告诉人们除非在子类中使用,否则不要使用它。如果他们愿意,他们仍然可以
- 将属性公开并标记,让分析器告诉人们不要使用它,除非在子类中使用。如果他们愿意,他们仍然可以
- 保持财产私有,并提供单独的访问方法:
如果他们真的想去,任何人都可以去,但他们需要知道这一点 它来自mixina{ //任何继承类都无法访问此属性。 int_privateProperty=2; 静态int getPrivateProperty(A A)=>A.(u privateProperty; 静态void setPrivateProperty(A,int值){ a、 _privateProperty=价值; } }
A
\u privateProperty
是一个不同的名称,一个专用于另一个库
如果您不能在同一个库中同时声明mixin和class,并且您确实需要访问该属性,那么您可以做很多事情来实现这一点
- 将该属性公开,并告诉人们除非在子类中使用,否则不要使用它。如果他们愿意,他们仍然可以
- 将属性公开并标记,让分析器告诉人们不要使用它,除非在子类中使用。如果他们愿意,他们仍然可以
- 保持财产私有,并提供单独的访问方法:
如果他们真的想去,任何人都可以去,但他们需要知道这一点 它来自mixina{ //任何继承类都无法访问此属性。 int_privateProperty=2; 静态int getPrivateProperty(A A)=>A.(u privateProperty; 静态void setPrivateProperty(A,int值){ a、 _privateProperty=价值; } }
A
privateProperty
的公共getter。在mixin类中创建一个指向继承类可以访问的privateProperty
的公共getter。很好的解释和替代选项。谢谢。很好的解释和其他选择。非常感谢。