草庐IT

public_private

全部标签

java - 私有(private)静态内部类是否推荐封装?

如果您在Java中有一个私有(private)静态嵌套类,是否仍然建议使用getter和setter而不是直接访问字段?一个例子。直接现场访问:publicclassApplication{privateListmyInnerClassList;//...publicvoidfoo(){MyInnerClassinner=newMyInnerClass();inner.bar=50;myInnerClassList.add(inner);}privatestaticclassMyInnerClass{privateintbar;}}与封装:publicclassApplication{

java - Private 就是 Private,那为什么 java 会提供使用反射来访问私有(private)方法的便利呢?

这个问题在这里已经有了答案:WhyisitallowedtoaccessJavaprivatefieldsviareflection?(7个答案)关闭6年前。使用反射时需要注意哪些潜在问题。我在反射(reflection)中很困惑,为什么java提供这种访问私有(private)数据成员的功能。私有(private):就像我想的那样,只有声明它的类才能看到它。那为什么可以访问其他类中的私有(private)事物呢?这个术语(反射)完全溢出了我对java中私有(private)(访问说明符)属性的概念。我访问了很多关于这个主题的链接,但没有给出关于这个主题的完整解释。例如:package

java - 如何在未经身份验证的情况下使用 Google Spreadsheet API Java 库获取公共(public) Google Spreadsheet 数据

-我想做什么我想在没有身份验证的情况下使用Google电子表格APIJava库从Google电子表格获取数据。Google电子表格是公开发布的。我想使用以下方法:com.google.gdata.data.spreadsheet.CustomElementCollection-问题CustomElementCollection通过身份验证返回收集数据。但是CustomElementCollection未经身份验证返回null。由于listEntry.getPlainTextContent()显示数据,所以我认为我应该能够以任何方式获取数据。-附源码有身份验证:Auth.javaimpo

java - 访问父/子类加载器之间的包私有(private)元素

在Java应用程序中,我声明了两个类,一个类(One)在ClassLoaderA中声明,另一个类(Two)在ClassLoaderB中声明。ClassLoaderA是B的parent。这两个类都具有相同的包(即:org.test)。虽然A是B的父类加载器,但我似乎无法从Two事件访问One的包私有(private)方法或变量,我得到一个IllegalAccessError异常。我了解包私有(private)可访问性基于包名称和类加载器。有没有办法重新关联One和Two,以便Two可以访问One的封装私有(private)元素?下面是证明这一点的测试:packageorg.test;pu

java - 不可变类/对象,私有(private)构造函数,工厂方法

已经阅读了如何通过以下步骤使类不可变不要提供“setter”方法——修改字段或字段引用的对象的方法。将所有字段设为最终字段和私有(private)字段。不允许子类覆盖方法。最简单的方法是将类声明为final。一种更复杂的方法是将构造函数设为私有(private)并在工厂方法中构造实例。如果实例字段包含对可变对象的引用,则不允许更改这些对象:一种。不要提供修改可变对象的方法。b.不要共享对可变对象的引用。永远不要存储对传递给构造函数的外部可变对象的引用;如有必要,创建副本并存储对副本的引用。同样,必要时创建内部可变对象的副本,以避免在方法中返回原始对象。我不确定我是否清楚地理解私有(pr

java - 如何模拟私有(private) dao 变量?

我有一个dao.create()调用,我想在测试方法时对其进行模拟。但是我还是遗漏了一些东西,因为我仍然在接受NPE。这里有什么问题?classMyService{@InjectprivateDaodao;publicvoidmyMethod(){//..dao.create(object);//}}如何模拟dao.create()调用?@RunWith(PowerMockRunner.class)@PrepareForTest(DAO.class)publicvoidMyServiceTest{@TestpublicvoidtestMyMethod(){PowerMockito.mo

java - 为什么 Eclipse 将接口(interface)方法标记为 public abstract?

当使用Eclipse的“ExtractInterface”重构时,它会默认声明方法publicabstract。为什么?接口(interface)上的public修饰符是完全多余的,abstract在接口(interface)声明上似乎也毫无意义。 最佳答案 这些关键字确实是多余的。我个人不会在这种情况下使用它们,但我明白为什么有人可能更愿意包括它们。JLSexplicitlydiscourages这种做法:Itispermitted,butdiscouragedasamatterofstyle,toredundantlyspeci

java - 如何从 Velocity 模板访问对象的公共(public)字段

这是我的对象类:publicclassAddress{publicfinalStringline1;publicfinalStringtown;publicfinalStringpostcode;publicAddress(finalStringline1,finalStringtown,finalStringpostcode){this.line1=line1;this.town=town;this.postcode=postcode;}}我像这样将它添加到速度上下文中:AddresstheAddress=newAddress("123FakeSt","Springfield","S

java - 使用带有 CompletableFuture 的默认公共(public) fork/join 池进行长阻塞调用是不好的做法吗?

假设我有一个CompletableFuture,它包装了一个阻塞调用,例如使用JDBC查询后端。在这种情况下,由于我没有将任何执行程序服务作为参数传递给CompletableFuture.supplyAsync(),因此通过后端获取资源的实际阻塞工作应该由公共(public)Fork/Join池中的线程完成。不是吗badpractice让来自公共(public)FJpool的线程执行阻塞调用?我在这里的优势是我的主线程没有阻塞,因为我委托(delegate)异步运行的阻塞调用。检查正在阻塞的abtJDBC调用here.如果这个推断是正确的,为什么可以选择将默认的公共(public)FJ

java - 将公共(public)证书导入 keystore 时出错

我有来自CA的公共(public)证书。我想使用此证书创建JavaSSL连接。我提到了HowcanIusedifferentcertificatesonspecificconnections?和JavaSSLconnectionwithself-signedcertificatewithoutcopyingcompletekeystoretoclient.由此我了解到我需要将证书导入keystore。但是我还没有从CA收到任何keystore。我创建了一个keystore并尝试将公共(public)证书导入其中。但随后出现以下错误:keytool错误:java.lang.Excepti