任何人都可以通过以下声明告诉我我们的意思(我在我的一个教程中遇到过)
String s1 = Utilities.gets1(UtilityConstants.MY_SEVICE_NAME);
我发现项目中确实存在Utilities.java
,UtilityConstants.java
个文件。
我知道这个模糊的小信息很难传达出正确的含义。
但是,你能说清楚那是什么样的电话吗?
答案 0 :(得分:3)
gets1
类中存在方法Utilities
,该方法接受String
参数并返回String
。字符串参数发生从另一个类UtilityConstants
中选择,其中至少一个static
[也可能是final
]字符串变量声明,名称为MY_SEVICE_NAME
。
答案 1 :(得分:2)
当然看起来看起来就像调用gets1
类中名为Utilities
的静态方法一样,其参数为UtilityConstants.MY_SERVICE_NAME
。
换句话说,计算表达式UtilityConstanst.MY_SERVICE_NAME
,然后将该值作为参数传递给gets1
,其中相应的参数将从该值开始。
该方法的返回值是String
引用 - 可以想象为空引用。 s1
的值将是返回的值。 (请注意,它是一个引用,而不是String
对象本身。)
如果是一个静态方法(与Utilities
是一个表达式,如变量的可能但不太可能的情况相反),那么{{1调用需要class; Utilities
方法不会有gets1
的隐式实例来访问。
那是你在找什么?
答案 2 :(得分:0)
在Utilities
课程中,您将获取由static
(可能还有final
)字段MY_SEVICE_NAME
标识的服务的名称。
我说可能是因为字段名称是大写的并且_
是分开的,这在java中通常意味着您正在处理final
字段。
答案 3 :(得分:0)
MY_SEVICE_NAME是UtilityConstants的静态常量
gets1是Utilities类的静态方法
你可以在这里阅读静态 - http://download.oracle.com/javase/tutorial/java/javaOO/classvars.html
简而言之 - static 不是实例变量/常量,它是类的变量/常量,您始终可以在没有类实例的情况下访问它。