gpt4 book ai didi

java - 导入两个同名的实用程序类。有功能还是无用?

转载 作者:行者123 更新时间:2023-12-01 20:12:07 25 4
gpt4 key购买 nike

对于两个具有相同名称且仅包含静态方法的实用程序类,我按如下方式进行操作:

  1. 只需导入第一个
  2. 创建了第二个类的实例。

示例:

package util1;

public class Utility {
public static void method() {
System.out.println("First Utility. static method");
}
}
package util2;

public class Utility {
public static void method() {
System.out.println("Second Utility. static method");
}
}
import util1.Utility;

public class Component {

private static final util2.Utility anotherUtility = new util2.Utility();

public static void usedByReflection() {
Utility.method();
anotherUtility.method();
}
}

现在我不需要编写完整的第二个实用程序类名称来调用其方法,但也许我没有预见到某些事情......?

附:Component类的方法是由某个BlackBox通过反射来调用的。所有多线程安全功能都在 BlackBox 中。

UPD:我找到了更好的技巧:

import util1.Utility;

public class Component {

private static final util2.Utility anotherUtility = null; // There are some changes

public static void usedByReflection() {
Utility.method();
anotherUtility.method();
}
}

现在我不创建新对象,但是可以在没有任何错误的情况下使用它吗?

最佳答案

IMO,这很令人困惑,可以通过以下方式更清楚地处理:

public class CombinedUtilityComponent {

public static void usedByReflection() {
util1.Utility.method();
util2.Utility.method();
}
}

或者,更好的是,在您的代码中,您可以完全限定类名称,它们就会成为唯一的名称,而无需任何令人困惑的技巧。

关于java - 导入两个同名的实用程序类。有功能还是无用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46526499/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com