访问私有内部类中的公共方法

如何解决访问私有内部类中的公共方法

我有以下代码,我想知道如何访问public method:locationFinder的{​​{1}}中的private inner class:LocationBasedFormatter

基本上我想从 outer class:LocationFormatter 访问方法 locationFinder 并获得 MyClass

List<String>

以下是我需要传递值并访问 @Getter @Setter public class LocationFormatter { public static final Formatter Location(String longitute,String latitude) { return new LocationBasedFormatter(longitute,latitude) } public static interface Formatter {} @AllArgsConstructor private static final class LocationBasedFormatter implements Formatter { private String longitute; private String latitude; public final List < String > locationFinder() { String location = "Your Long: " + this.longitute + " Your Lat: " + this.latitude; List < String > randomList = new ArrayList < String > () randomList.add(location) return randomList; } } } 方法的另一个主类:

locationFinder 

当我尝试在 public class MyClass { public static void main(String args[]) { LocationFormatter loc = new LocationFormatter(); LocationBasedFormatter result = loc.Location("44.54","94.54"); } } loc 上查找对象/方法时,我无法找到我的方法 result。我想访问 locationFinder 方法并根据我传递给我的私有变量的值获取 locationFinder

我有点困惑,无法在另一个类中获取方法。但是,如果我在同一个类中编写 main 方法,那么我就可以访问它。

解决方法

看来你需要在接口<div id="react"></div> <script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.8.4/umd/react.production.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.8.4/umd/react-dom.production.min.js"></script>中声明方法locationFinder并使用这个接口(目前只是一个标记接口)而不是它在私有类中的具体实现:

Formatter

那么这个方法就可以公开访问了:

public static interface Formatter {
    List<String> locationFinder();
}

但是,应该为这段代码中的类和方法使用更具描述性的名称。

,

从技术上讲,LocationBasedFormatter 不是内部类。这是一个static nested class.

public static getLocationBasedFormatterInstance() 类中添加一个 LocationFormatter 方法。此 getLocationBasedFormatterInstance() 可以返回 LocationBaedFomratter

的实例
public class LocationFormatter {
  ... 
  public static getLocationBasedFormatterInstance(){
     LocationBasedFormatter lbf = new LocationBasedFormatter();
     return lbf;

  }

}

然后,您必须从主方法创建静态嵌套类 LocationBasedFormatter 的对象。

LocationFormatter.LocationBasedFormatter locationFormatter = new LocationFormatter();
LocationBaedFomratter loationBasedFomratter = locationFormatter.getLocationBasedFormatterInstance();

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?