草庐IT

Java 反射 : How can I get the all getter methods of a java class and invoke them

我写了一个有很多getter的java类..现在我想获取所有getter方法并在某个时候调用它们..我知道有诸如getMethods()或getMethod(Stringname,Class...parameterTypes)之类的方法,但我只想得到真正的setter/getter......,使用正则表达式?谁能告诉我?谢谢! 最佳答案 不要使用正则表达式,使用Introspector:for(PropertyDescriptorpropertyDescriptor:Introspector.getBeanInfo(yourCla

java - 为什么 GSON 使用字段而不是 getter/setter?

为什么GSON使用ONLY字段(私有(private)、公共(public)、protected)?有没有办法告诉GSON只使用getter和setter? 最佳答案 一般来说,当您序列化/反序列化对象时,您这样做是为了得到对象状态的精确副本;因此,您通常希望规避OO设计中通常需要的封装。如果您不规避封装,则可能无法最终得到一个在反序列化之后具有与序列化之前完全相同的状态的对象。此外,请考虑您不想为特定属性提供setter的情况。如果您正在使用getter和setter,序列化/反序列化应该如何操作?

dart - InheritedWidget - 在 navigator.push 之后在 null 上调用 getter

在导航到新小部件后尝试访问InheritedWidget时遇到问题。我有这样的顶级小部件classAppextendsStatelessWidget{build(context){returnMaterialApp(title:'IniciarSesion',home:LoginBlocProvider(child:WelcomeScreen()),);}}然后WelcomeScreen有一个按钮可以导航到LoginScreenclassWelcomeScreenextendsStatelessWidget{@overrideWidgetbuild(BuildContextcontex

reflection - Kotlin 反射性地调用 getter/setter

这里是Kotlin的初学者。我尝试通过程序中的反射来创建和填充对象。我在纯kotlin中找不到等效的功能,所以我的解决方案类似于下面的代码,它可以正常工作,但需要使用像java.lang.String::class.java和intelliJ这样的脏引用,这是可以理解的,似乎不喜欢这个。有没有我想念的更简单的方法来做到这一点?valjclass=myObject::class.javavalsetters=jclass.declaredMethods.filter{it.name.startsWith("set")}for(sinsetters){valparamType=s.para

kotlin - 添加抽象私有(private) getter 和公共(public) setter 的正确方法是什么?

我有一个接口(interface),我想要一个可以在类内部修改但不能在外部修改的属性。我不能使用val因为它需要是可变的,并且var关键字不能具有指定的私有(private)setter,因为它在接口(interface)中。在Java中我会这样做:publicgetMyProperty();我可以在kotlin中使用相同的方法,直接编写getter函数,但这似乎不像kotlin的方法。有没有更好的方法来达到同样的效果?fungetMyProperty() 最佳答案 在Kotlin中,你实际上可以用varoverrideval,所以

Kotlin val 差异 getter 覆盖与分配

我开始玩Kotlin并阅读了一些关于使用自定义getter的mutableval的内容。如here中所述或在KotlinCodingConvention如果结果可以更改,则不应覆盖getter。classSampleArray(valsize:Int){valisEmptyget()=size==0//sizeissetatthebeginninganddoesnotchangesothisisok}classSampleArray(varsize:Int){funisEmpty(){returnsize==0}//sizeissetatthebeginningbutcanalsoch

Kotlin - 了解 Getter 和 Setter

Kotlin自动生成它的getter和设置,但我从不引用它们?另外,在Kotlin中编写自定义getter/setter的正确方法是什么?当我说myObj.myVar=99时,我觉得myVar是我直接访问的myObj的公共(public)字段?这里到底发生了什么? 最佳答案 这已经在几个地方得到了回答,但我想我会为从Java/C#/C/C++过渡到Kotlin的人分享一个具体的例子,并且他们有同样的问题:我很难理解getter和setter在Kotlin中是如何工作的,尤其是因为它们从未被明确地调用过(就像在Java中一样)。因此,

kotlin - Interface 的函数与 Property 的 getter 冲突

接口(interface)的函数名故意与属性的getter名冲突,但由于意外覆盖问题被编译器禁止。是否可以指示编译器这是故意的?interfaceA{fungetFoo()}classB:A{valfoo} 最佳答案 此功能似乎没有以任何方式实现。@AndreyBreslav对similarquestion的评论:YoucannotoverrideJavamethodswithKotlinpropertiesatthemoment.Itwouldbeniceifwecouldsupportit,butwedon'tknowhowto

java - Kotlin 属性的私有(private) getter 和 public setter

如何在Kotlin中创建一个具有私有(private)getter(或没有它)但具有公共(public)setter的属性?varstatusprivateget不起作用并出现错误:Getter可见性必须与属性可见性相同就我而言,原因是Java互操作:我希望我的Java代码能够调用setStatus但不能调用getStatus。 最佳答案 目前在Kotlin中不可能有一个带有比该属性更可见的setter的属性。问题跟踪器中有一个语言设计问题,请随时观看/投票或分享您的用例:https://youtrack.jetbrains.com

kotlin - 覆盖 Kotlin 数据类的 getter

给定以下Kotlin类:dataclassTest(valvalue:Int)如何覆盖Intgetter以便在值为负时返回0?如果这不可能,有哪些技术可以达到合适的结果? 最佳答案 在每天花费将近一整年的时间编写Kotlin之后,我发现尝试像这样覆盖数据类是一种不好的做法。有3种有效的方法,在我介绍它们之后,我将解释为什么其他答案建议的方法不好。让创建dataclass的业务逻辑将值更改为0或更大,然后再使用错误值调用构造函数。这可能是大多数情况下的最佳方法。不要使用数据类。使用常规的class并让你的IDE为你生成equals和h