我有一个名为Constantsfill with variables 的java类.目前,如果我想在活动中使用该变量,我必须像这样使用它.
Constants.variable = "blah blah";
Run Code Online (Sandbox Code Playgroud)
有没有办法将我的Constants类导入我的活动,以便我可以像这样的普通变量一样使用它
variable = "blah blah";
Run Code Online (Sandbox Code Playgroud)
我试过了
import com.myname.appname.Constants;
Run Code Online (Sandbox Code Playgroud)
但这似乎不起作用.
我在这里先向您的帮助表示感谢.
我知道了
可以使用修饰符public声明一个类,在这种情况下,该类对于所有类都可见.如果类没有修饰符(默认值,也称为包私有),则只能在其自己的包中显示.
这是一个明确的陈述.但是这些信息干扰了我对包裹进口的理解(这很容易就是错误的).我认为导入一个包我从导入包中可以看到导入类的类.
那么它是怎样工作的?在导入包含公共类的包的条件下,所有类都可以看到公共类吗?还是没有这样的条件?包私有类怎么样?如果包含的包装是否被导入,它们是不可见的?
补充:在我看来,我得到了2个被标记为良好(被投票)并且相互矛盾的答案.
当我在Java中进行大量类型检查时,如下所示:
if (clazz.equals(Byte.class) <dosomething>
if (clazz.equals(Integer.class) <dosomething>
...
Run Code Online (Sandbox Code Playgroud)
JVM是否加载了所有这些类(Byte,Integer?)如果确实如此,是否还有其他方法可以在不加载一堆我甚至不需要的类的情况下进行类类型检查?
我是一个相对较新的Java,作为一个JS开发人员,在SpringBoot应用程序上工作,我看到了一个让我的好奇心高峰的模式:
在其中Application.java有几个import类,然后exclude在其中标记@SpringBootApplication,例如
import org.springframework.boot.autoconfigure.data.database.DataBaseAutoConfiguration;
...
@SpringBootApplication(
exclude = {DataBaseAutoConfiguration.class, ...}
)
Run Code Online (Sandbox Code Playgroud)
DataBaseAutoConfiguration 除了这里,代码库中没有其他任何地方引用.
有人可以解释这种模式的目的吗?import这个类感到奇怪,然后立即exclude在配置中
为什么不喜欢这样的:
exclude = {"DataBaseAutoConfiguration", ...} 然后在Spring中查找要忽略的类,避免明显的"无用"导入?
要么:
// import nothing
@SpringBootApplication
Run Code Online (Sandbox Code Playgroud)