Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 另一个类的getResource()_Java_Getresource - Fatal编程技术网

Java 另一个类的getResource()

Java 另一个类的getResource(),java,getresource,Java,Getresource,我有一个类a,它获取一个配置文件,执行以下操作: this.getClass().getResource("cfgFile"); 现在我创建了一个新的B类,它需要a的CFG文件。现在我正在做: A.class.getResource("cfgFile"); 但这感觉不对 我愿意创建一个新类,比如ABCfg,并将cfgFile添加到它的资源路径中,但我不确定这是最好的方法 最好的方法是什么 谢谢你的阅读 您可以通过将getClass().getResource()包装在a上的新静态方法中来封装

我有一个类a,它获取一个配置文件,执行以下操作:

this.getClass().getResource("cfgFile");
现在我创建了一个新的B类,它需要a的CFG文件。现在我正在做:

A.class.getResource("cfgFile");
但这感觉不对

我愿意创建一个新类,比如ABCfg,并将cfgFile添加到它的资源路径中,但我不确定这是最好的方法

最好的方法是什么


谢谢你的阅读

您可以通过将
getClass().getResource()
包装在
a
上的新静态方法中来封装它。这样,您就可以灵活地在将来更改实现,而不会影响调用代码


如果
A
在提供配置信息方面有其他责任,那么最好只为此创建一个新类。封装
getResource()
调用仍然值得一做。

您可能应该创建某种配置类或提供另一种获取配置数据的方法。B不应该依赖于知道A的配置在哪里,甚至不应该依赖于知道它需要A的配置。我建议你调查一下

例如,B可以使用完成其工作所需的配置来构造,而不是让B负责知道在哪里可以找到其配置。后一种方法导致紧密耦合的代码越来越难以测试