问题标签 [class-visibility]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
jax-ws - 如何在 wildfly 10 中隔离战争类加载。获取 org.apache.cxf.enpoint.Client 类的可见性问题
我正在尝试部署一个战争,它在 Wildfly 10.1.0.Final 中有一个用于 SOAP 服务的 JAX-WS 客户端。当我试图获取 web 服务的端口时,javax.xml.ws.Service 中的委托接口会自动转到 getPort() 方法的 apache cxf 实现。
当它在内部尝试创建代理连接时,我收到 IllegalArgumentException,因为 org.apache.cxf.enpoint.Client 对类加载器不可见。
我已经阅读了 wildfly 的文档和类加载层次结构。Wildfly 有一个 cxf-core.jar(3.1.6),我的战争也有 cxf-core.jar(3.1.7)。我的估计是它试图从 wildfly 访问 cxf-core.jar 并引发类加载问题。
JBOSS 有不同的元文件来改变正常类加载的流程,如 jboss-web.xml、jboss-classloading.xml 等。我的查询应该使用哪个元文件来解决这个类加载器的可见性问题。
元文件是什么,内容是什么,我需要在内容中写入什么引用(比如战争名称 mywar.war)。
我得到的错误跟踪:
13:38:22,877 INFO [org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) 从 WSDL 创建服务 { http://exp.com/webservices/ }CustomerRelationshipManagementWebService:http://localhost:5321/Nsb.CustomerRelationshipManagement.WebService.asmx?wsdl 13:39:18,632 错误 [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) java.lang.IllegalArgumentException:接口 org.apache.cxf.endpoint.Client 在类加载器中不可见 13:39:18,642 错误 [stderr ] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) 在 java.lang.reflect.Proxy$ProxyClassFactory.apply(Proxy.java:581) 13:39:18,646 错误 [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d ) 在 java.lang.reflect.Proxy$ProxyClassFactory.apply(Proxy.java:557) 13:39:18,648 错误 [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) 在 java.lang.reflect.WeakCache$Factory .get(WeakCache.java:230) 13:39:18,654 错误 [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) 在 java.lang.reflect.WeakCache.get(WeakCache.java:127) 13:39: 18,656 错误 [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) 在 java.lang.reflect.Proxy.getProxyClass0(Proxy.java:419) 13:39:18,662 错误 [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) 在 java.lang.reflect.Proxy.newProxyInstance(Proxy.java:719) 13:39:18,664 错误 [stderr] (e99c3221 -b10d-4fe7-b0ff-22fac3e1754d) 在 org.apache.cxf.common.util.ProxyHelper.getProxyInternal(ProxyHelper.java:47) 13:39:18,666 错误 [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d)在 org.apache.cxf.common.util.ProxyHelper.getProxy(ProxyHelper.java:101) 13:39:18,669 错误 [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) 在 org.apache.cxf.frontend。 ClientProxyFactoryBean.create(ClientProxyFactoryBean.java:175) 13:39:18,671 错误 [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) 在 org.apache.cxf.jaxws.JaxWsProxyFactoryBean.create(JaxWsProxyFactoryBean.java:142) 13 :39:18,673 错误 [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) 在 org.apache.cxf。jaxws.ServiceImpl.createPort(ServiceImpl.java:493) 13:39:18,675 错误 [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) 在 org.jboss.wsf.stack.cxf.client.ProviderImpl$JBossWSServiceImpl.createPort (ProviderImpl.java:578) 13:39:18,680 错误 [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) 在 org.apache.cxf.jaxws.ServiceImpl.getPort(ServiceImpl.java:359) 13:39: 18,691 错误 [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) 在 org.apache.cxf.jaxws.ServiceImpl.getPort(ServiceImpl.java:350) 13:39:18,700 错误 [stderr] (e99c3221-b10d-4fe7 -b0ff-22fac3e1754d) 在 javax.xml.ws.Service.getPort(Service.java:99) 13:39:18,705 错误 [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) 在 com.abc.client.CustomerRelationshipManagementWebService .getCustomerRelationshipManagementWebServiceSoap(CustomerRelationshipManagementWebService.java:72)ServiceImpl.createPort(ServiceImpl.java:493) 13:39:18,675 错误 [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) 在 org.jboss.wsf.stack.cxf.client.ProviderImpl$JBossWSServiceImpl.createPort(ProviderImpl .java:578) 13:39:18,680 错误 [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) 在 org.apache.cxf.jaxws.ServiceImpl.getPort(ServiceImpl.java:359) 13:39:18,691 错误[stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) at org.apache.cxf.jaxws.ServiceImpl.getPort(ServiceImpl.java:350) 13:39:18,700 错误 [stderr] (e99c3221-b10d-4fe7-b0ff -22fac3e1754d) 在 javax.xml.ws.Service.getPort(Service.java:99) 13:39:18,705 错误 [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) 在 com.abc.client.CustomerRelationshipManagementWebService.getCustomerRelationshipManagementWebServiceSoap (客户关系管理WebService.java:72)ServiceImpl.createPort(ServiceImpl.java:493) 13:39:18,675 错误 [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) 在 org.jboss.wsf.stack.cxf.client.ProviderImpl$JBossWSServiceImpl.createPort(ProviderImpl .java:578) 13:39:18,680 错误 [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) 在 org.apache.cxf.jaxws.ServiceImpl.getPort(ServiceImpl.java:359) 13:39:18,691 错误[stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) at org.apache.cxf.jaxws.ServiceImpl.getPort(ServiceImpl.java:350) 13:39:18,700 错误 [stderr] (e99c3221-b10d-4fe7-b0ff -22fac3e1754d) 在 javax.xml.ws.Service.getPort(Service.java:99) 13:39:18,705 错误 [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) 在 com.abc.client.CustomerRelationshipManagementWebService.getCustomerRelationshipManagementWebServiceSoap (客户关系管理WebService.java:72)72)72)createPort(ServiceImpl.java:493) 13:39:18,675 错误 [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) 在 org.jboss.wsf.stack.cxf.client.ProviderImpl$JBossWSServiceImpl.createPort(ProviderImpl.java :578) 13:39:18,680 错误 [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) 在 org.apache.cxf.jaxws.ServiceImpl.getPort(ServiceImpl.java:359) 13:39:18,691 错误 [stderr ] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) 在 org.apache.cxf.jaxws.ServiceImpl.getPort(ServiceImpl.java:350) 13:39:18,700 错误 [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d ) at javax.xml.ws.Service.getPort(Service.java:99) 13:39:18,705 错误 [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) 在 com.abc.client.CustomerRelationshipManagementWebService.getCustomerRelationshipManagementWebServiceSoap(CustomerRelationshipManagementWebService .java:72)createPort(ServiceImpl.java:493) 13:39:18,675 错误 [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) 在 org.jboss.wsf.stack.cxf.client.ProviderImpl$JBossWSServiceImpl.createPort(ProviderImpl.java :578) 13:39:18,680 错误 [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) 在 org.apache.cxf.jaxws.ServiceImpl.getPort(ServiceImpl.java:359) 13:39:18,691 错误 [stderr ] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) 在 org.apache.cxf.jaxws.ServiceImpl.getPort(ServiceImpl.java:350) 13:39:18,700 错误 [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d ) at javax.xml.ws.Service.getPort(Service.java:99) 13:39:18,705 错误 [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) 在 com.abc.client.CustomerRelationshipManagementWebService.getCustomerRelationshipManagementWebServiceSoap(CustomerRelationshipManagementWebService .java:72)java:493) 13:39:18,675 错误 [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) 在 org.jboss.wsf.stack.cxf.client.ProviderImpl$JBossWSServiceImpl.createPort(ProviderImpl.java:578) 13 :39:18,680 错误 [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) 在 org.apache.cxf.jaxws.ServiceImpl.getPort(ServiceImpl.java:359) 13:39:18,691 错误 [stderr] (e99c3221- b10d-4fe7-b0ff-22fac3e1754d) at org.apache.cxf.jaxws.ServiceImpl.getPort(ServiceImpl.java:350) 13:39:18,700 错误 [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) 在 javax。 xml.ws.Service.getPort(Service.java:99) 13:39:18,705 错误 [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) 在 com.abc.client.CustomerRelationshipManagementWebService.getCustomerRelationshipManagementWebServiceSoap(CustomerRelationshipManagementWebService.java:72 )java:493) 13:39:18,675 错误 [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) 在 org.jboss.wsf.stack.cxf.client.ProviderImpl$JBossWSServiceImpl.createPort(ProviderImpl.java:578) 13 :39:18,680 错误 [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) 在 org.apache.cxf.jaxws.ServiceImpl.getPort(ServiceImpl.java:359) 13:39:18,691 错误 [stderr] (e99c3221- b10d-4fe7-b0ff-22fac3e1754d) at org.apache.cxf.jaxws.ServiceImpl.getPort(ServiceImpl.java:350) 13:39:18,700 错误 [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) 在 javax。 xml.ws.Service.getPort(Service.java:99) 13:39:18,705 错误 [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) 在 com.abc.client.CustomerRelationshipManagementWebService.getCustomerRelationshipManagementWebServiceSoap(CustomerRelationshipManagementWebService.java:72 )675 错误 [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) 在 org.jboss.wsf.stack.cxf.client.ProviderImpl$JBossWSServiceImpl.createPort(ProviderImpl.java:578) 13:39:18,680 错误 [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) at org.apache.cxf.jaxws.ServiceImpl.getPort(ServiceImpl.java:359) 13:39:18,691 错误 [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d)在 org.apache.cxf.jaxws.ServiceImpl.getPort(ServiceImpl.java:350) 13:39:18,700 错误 [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) 在 javax.xml.ws.Service.getPort( Service.java:99) 13:39:18,705 错误 [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) 在 com.abc.client.CustomerRelationshipManagementWebService.getCustomerRelationshipManagementWebServiceSoap(CustomerRelationshipManagementWebService.java:72)675 错误 [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) 在 org.jboss.wsf.stack.cxf.client.ProviderImpl$JBossWSServiceImpl.createPort(ProviderImpl.java:578) 13:39:18,680 错误 [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) at org.apache.cxf.jaxws.ServiceImpl.getPort(ServiceImpl.java:359) 13:39:18,691 错误 [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d)在 org.apache.cxf.jaxws.ServiceImpl.getPort(ServiceImpl.java:350) 13:39:18,700 错误 [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) 在 javax.xml.ws.Service.getPort( Service.java:99) 13:39:18,705 错误 [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) 在 com.abc.client.CustomerRelationshipManagementWebService.getCustomerRelationshipManagementWebServiceSoap(CustomerRelationshipManagementWebService.java:72)cxf.client.ProviderImpl$JBossWSServiceImpl.createPort(ProviderImpl.java:578) 13:39:18,680 错误 [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) 在 org.apache.cxf.jaxws.ServiceImpl.getPort(ServiceImpl .java:359) 13:39:18,691 错误 [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) 在 org.apache.cxf.jaxws.ServiceImpl.getPort(ServiceImpl.java:350) 13:39:18,700 错误[stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) 在 javax.xml.ws.Service.getPort(Service.java:99) 13:39:18,705 错误 [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d ) 在 com.abc.client.CustomerRelationshipManagementWebService.getCustomerRelationshipManagementWebServiceSoap(CustomerRelationshipManagementWebService.java:72)cxf.client.ProviderImpl$JBossWSServiceImpl.createPort(ProviderImpl.java:578) 13:39:18,680 错误 [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) 在 org.apache.cxf.jaxws.ServiceImpl.getPort(ServiceImpl .java:359) 13:39:18,691 错误 [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) 在 org.apache.cxf.jaxws.ServiceImpl.getPort(ServiceImpl.java:350) 13:39:18,700 错误[stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) 在 javax.xml.ws.Service.getPort(Service.java:99) 13:39:18,705 错误 [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d ) 在 com.abc.client.CustomerRelationshipManagementWebService.getCustomerRelationshipManagementWebServiceSoap(CustomerRelationshipManagementWebService.java:72)680 错误 [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) 在 org.apache.cxf.jaxws.ServiceImpl.getPort(ServiceImpl.java:359) 13:39:18,691 错误 [stderr] (e99c3221-b10d-4fe7 -b0ff-22fac3e1754d) 在 org.apache.cxf.jaxws.ServiceImpl.getPort(ServiceImpl.java:350) 13:39:18,700 错误 [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) 在 javax.xml.ws .Service.getPort(Service.java:99) 13:39:18,705 错误 [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) 在 com.abc.client.CustomerRelationshipManagementWebService.getCustomerRelationshipManagementWebServiceSoap(CustomerRelationshipManagementWebService.java:72)680 错误 [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) 在 org.apache.cxf.jaxws.ServiceImpl.getPort(ServiceImpl.java:359) 13:39:18,691 错误 [stderr] (e99c3221-b10d-4fe7 -b0ff-22fac3e1754d) 在 org.apache.cxf.jaxws.ServiceImpl.getPort(ServiceImpl.java:350) 13:39:18,700 错误 [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) 在 javax.xml.ws .Service.getPort(Service.java:99) 13:39:18,705 错误 [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) 在 com.abc.client.CustomerRelationshipManagementWebService.getCustomerRelationshipManagementWebServiceSoap(CustomerRelationshipManagementWebService.java:72)700 错误 [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) 在 javax.xml.ws.Service.getPort(Service.java:99) 13:39:18,705 错误 [stderr] (e99c3221-b10d-4fe7-b0ff -22fac3e1754d) 在 com.abc.client.CustomerRelationshipManagementWebService.getCustomerRelationshipManagementWebServiceSoap(CustomerRelationshipManagementWebService.java:72)700 错误 [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) 在 javax.xml.ws.Service.getPort(Service.java:99) 13:39:18,705 错误 [stderr] (e99c3221-b10d-4fe7-b0ff -22fac3e1754d) 在 com.abc.client.CustomerRelationshipManagementWebService.getCustomerRelationshipManagementWebServiceSoap(CustomerRelationshipManagementWebService.java:72)
提前致谢
c++ - 在私有嵌套类上使用 using 指令
我一直在开发一个库,现在我认为它已经准备好了,我正在尝试遵循pimpl 原则以隐藏实现细节。
实现类在另一个文件中定义如下
及其实现:
主功能:
这样做,编译器error: 'class Class::ClassImpl' is private
会在ClassImpl.cpp
. 如果我将其删除并Class::ClassImpl
改用,一切正常。
有没有办法using
在私有嵌套类上使用ClassImpl
?
f# - F# 内部可见性更改记录构造函数行为
我正在使用 Flurl 调用 API。
这有效,我可以访问ticker.Ask 属性。
类 models.Ticker 在另一个 C# 项目中是可见的,并且构造函数是这样的:
我不想公开模型模块和 Ticker 类/记录,所以我将可见性更改为internal:
代码仍然“编译”但是当我运行它时我有这个异常:
- Newtonsoft.Json.JsonSerializationException:找不到用于 MyProject.models+Ticker 类型的构造函数。一个类应该有一个默认构造函数、一个带参数的构造函数或一个标有 JsonConstructor 属性的构造函数。路径 'high',第 1 行,位置 8。在 Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject 的 Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateNewObject(JsonReader reader,JsonObjectContract objectContract,JsonProperty containerMember,JsonProperty containerProperty,String id,Boolean& createdFromNonDefaultCreator) (JsonReader reader,Type objectType,JsonContract contract,JsonProperty member,JsonContainerContract containerContract,JsonProperty containerMember,Object existingValue)在 Newtonsoft.Json.Serialization.JsonSerializerInternalReader。
这是完整的代码示例,我是 F# 新手,可能需要解释问题:
我正在使用来自 C# 项目的客户端。我想 Ticker 的构造函数因为可见性而改变了。但为什么?如何保持 Ticker 类隐藏并使代码按预期工作?
[更新:使用类]
使用类
按预期完成工作。如果是内部的,它在外部是不可见的,但它可以被 JsonDeserializer “使用”。
当我使用记录时,我仍然对这种行为感到困惑。
java - 'public' 函数暴露了它的 'public/*package*/' 参数类型 SolarEdgeException
我有以下 Java 和 Kotlin 类:
我得到这个编译错误:
'public' 函数暴露了它的 'public/ package /' 参数类型 SolarEdgeException
两个类都在同一个包中,为什么不编译呢?
c# - 当 C# 类的方法默认为非虚拟时,为什么 C# 类默认不密封?
默认情况下,C# 中的方法是非虚拟的。This answer to another question解释了这样做的好处:
应该为继承设计类以便能够利用它。默认情况下拥有虚拟方法意味着类中的每个函数都可以插入并被另一个函数替换,这并不是一件好事。
甚至 Anders Hejlsberg似乎也给出了同样的理由:
当我们在 API 中发布一个虚方法时,我们不仅承诺当你调用这个方法时,x 和 y 都会发生。我们还承诺,当您覆盖此方法时,我们将按照与其他方法相关的特定顺序调用它,并且状态将保持不变。[...] 您不希望用户在 API 中的任意点覆盖和挂钩,因为您不一定会做出这些承诺。
我同意这个推理:通常当我创建一个非私有方法时,我只想创建可以从类外的某个地方调用的代码。通常,不会考虑其他人如何覆盖此方法以及会产生何种影响。对于特殊情况,我可以用virtual
信号来表示确实以覆盖有意义的方式创建了代码。
但是,默认情况下类仍然是未密封的。默认假设我花费了额外的精力来确保继承一个类是有意义的。
在这方面,有什么东西使类与方法不同吗?
编辑
我真的不知道如何改变搁置 - 基于意见的事情。我从不征求意见。也许我必须明确地说出来?
我不想发表意见。
一个正确的答案要么提供一个类与方法不同的例子,要么说明在这种情况下没有区别。
java - 如何解决 LI_LAZY_INIT_UPDATE_STATIC?
我正在尝试为MethodHandle
上游库中的非公共方法初始化一个。
我的SpotBugs Bug Detecter Report 说ofMethod()
存在LI_LAZY_INIT_UPDATE_STATIC问题。
我明白它在说什么。我看到这两个步骤(分配和设置可访问)在多线程环境中是有问题的。
我该如何解决这个问题?我应该应用双重检查锁定吗?
还是我应该把ofMethod()
逻辑放进去ofHandle()
?
php - Laravel,无法访问对象数据
我有这个输出print_r($mailable)
:
我怎样才能访问最后一行[id] => 1020
?
我尝试使用 $mailable->user、$mailable->mailable,但它显示:
module - How to hide sibling modules from each other in Rust?
I have a Rust module breakfast
containing two sub modules egg
and bacon
. The breakfast
module must know about egg
and bacon
, but the two children do not need to and therefore should not know about each other.
This is what my code looks like now. The breakfast gets made, but unfortunately egg
and bacon
can access each other.
Can I hide the siblings from each other somehow, perhaps by using visibility modifiers or by restructuring the modules? Or is the unneeded visibility something I should accept?
In reality, the modules are in separate files, but I put them in one here to make a clearer example.
android - 子类无法访问受保护的方法
我知道以前有人问过这个问题,但我的问题很奇怪,我找不到答案。
我有一个父类,其中成员被声明为受保护
在 的每个BaseController
后代中,我presenter
都可以毫无问题地引用它,因为它可以在同一个包和子类中访问。
OneBaseController
的后代也必须由其他类扩展,但我必须在执行某些操作之前进行一次检查,以presenter
再次引用where
奇怪的行为出现在这里,presenter
只有在没有 filter 的情况下才能完全访问if(this is PrinterAssociationController)
,使用该if
语句,当onConnection
调用回调时,IllegalAccessError
抛出异常presenter
这是 PrinterAssociationController 的声明
这是例外
我不明白为什么当我发表该if
声明时会发生这种情况
java - 使用私有成员参数化通用类型
在创建具有泛型类型的类时,似乎不可能使用私有类作为类型参数,即使该类是泛型类型的内部类。考虑这段代码:
上面的示例可以编译,而同一示例在私有时无法编译:Type
为什么不能将私有类用作其封闭类的类型参数?尽管是私有的,但在我看来,该类Type
应该在类中可见Test
。