java - 方法java中的类参数
问题描述
我找不到这方面的信息。是否有可能,如果是,那么如何在方法中使用类参数?
public static class allDragons {
String name;
Integer resource;
}
public void MethodName() {
dragonImage.setImageResource(rareDragon.resource); // here I would like to refer to the argument, but it doesn't work.
}
ImageView dragon;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_dragon);
dragonImage = findViewById(R.id.dragonimg);
allDragons rareDragon = new allDragons();
rareDragon.number = 1;
rareDragon.resource = (R.drawable.dragon);
...
我发现我应该使用类似的东西:setImageResource(allDragons().rareDragon.resource)
,但它仍然不起作用。我尝试了许多组合和修饰符,但仍然失败。如何?可能的?另一种方式?
解决方案
也许我完全错了 - 我不太清楚你想要达到什么目标,但也许这可以帮助你找到答案。
AllDragons
是一个静态类定义。您可以创建它的实例(就像您在 method 中所做的那样onCreate()
)并将其分配给成员而不是局部变量:
public class OuterClass {
public static class AllDragons {
String name;
Integer resource;
}
ImageView dragon;
// In order to access "rareDragon" in any method of this class,
// you need to create a member
AllDragons rareDragon;
public void methodName() {
dragonImage.setImageResource(rareDragon.resource);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_dragon);
dragonImage = findViewById(R.id.dragonimg);
rareDragon = new allDragons();
rareDragon.number = 1;
rareDragon.resource = (R.drawable.dragon);
}
}
PS:我修改了你的类/字段/方法名称。在 Java 中存在一些编码约定:
- 类名应以大写字母开头
- 方法名称和字段应以小写字母开头
- 常量应该完全用大写字母书写
推荐阅读
- mysql - MySQL - 未知数据库
- azure - HTTPS url 不工作,但相同的 HTTP 工作
- python - 如何从 .ods 文件制作列表?
- javascript - 如何从typeorm插入多对多关系的数据?
- excel - Excel VBA - 如何在 ThisWorkbook.ContentTypeProperties 中定义 Prop?
- selenium - 如何从调用的功能文件继承 webdriver 实例?
- java - 转换从 API 调用返回的对象时出现 Java IllegalCastException
- python - 访问numpy数组中焦点单元周围的单元
- html - 当我自定义 div 标签大小时,它会自动向左浮动并失去手机响应能力
- php - 如何检测客户端计算机上的 Internet 连接