问题标签 [field-accessors]

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.

0 投票
2 回答
1653 浏览

jsf - 使用 EL,是否可以对 bean 而不是 getter/setter 进行字段访问?

编辑

对这个答案持保留态度。自从我多年前提出这个问题以来,情况发生了很大变化。我现在建议使用 Lombok 而不是我的 EL 解决方案。出于历史原因留下原始问题。


当我不需要控制对对象内部状态的访问时,我非常厌倦 getter/setter 阻塞我的代码。我仍然必须生成 getter/setter 的唯一真正原因是因为 EL 通过定位方法而不是字段来工作:${myBean.fieldName}. wherefieldName指的是方法getFieldName()。除非找到 getter,否则是否可以扩展 EL Resolver 以仅返回公共字段值?


根据史蒂夫·阿特金森的回答更新:我希望这对其他人有所帮助。请注意我是如何明确检查我仅在 Form 或 Lead 对象上使用此 elresolver 的,这些对象是我的域对象。

0 投票
1 回答
90 浏览

c++ - 编译器是如何被骗来提供指向封闭类的指针的?

我正在阅读一篇关于 C++ 如何没有字段访问器作为语言的一部分的文章。

在文章的最后,作者给出了一个基于宏的解决方案,可以模拟类的字段访问器:

当我通过预处理器运行它时,我得到:

我的想法是我也会添加我自己的实现:

它看起来好像visitCount被直接访问了。
但是,这些函数实际上会在幕后调用:

我想更多地了解这个访问封闭类的技巧:

的相关性是0xffff什么?
十进制即: 65535.

这如何欺骗编译器访问包含 visitCount 类的类?

我还看到这在 MSVC 上不起作用,所以我想知道是否有标准的方法来完成这个黑客正在做的事情。

0 投票
3 回答
71 浏览

c# - 在 MVVM 中定义从模型到视图的属性更改的理想方法是什么?

我正在尝试重构 MVVM 架构中的一些代码。
该模型具有直接更改的公共值。

UI 监听这些值的变化。

下面是事件信号代码:

这是OnPropertyChanged功能:

对于 MVVM 中应该很自然的东西,这似乎是很多样板。
我想让它更简洁,但我不知道从哪里开始。

使用监听上述属性的视图,getter 和 setter 应该是什么样子?

0 投票
1 回答
300 浏览

c# - 仅具有某些字符串元素的 LINQ 的 C# 字段访问异常

我在 C# 中遇到了 LINQ 的问题,这个问题已经出现过多次。问题在于我从列表中选择时间或使用它进行评估以返回该项目的 lambda 函数。

场景是我有一个我定义的对象列表,我想搜索这些对象的属性,其中一些属性是列表。所以它们是一个对象列表,其中包含列表,我需要在其中返回内部列表项。

如您所见,在代码示例中,我在每个并行中都有这个。我只包括正在影响的线路。因此,如果我取出布尔评估( y=> y.ProductName ),这将毫无问题。这不是第一次发生这种问题,lambda 本身内部的某些东西导致了某种字段访问异常,通过在评估和放入字符串本身时它起作用。

这是异常本身:

System.FieldAccessException:尝试通过方法“<>x+<>c__DisplayClass0_0.<<>m0>b__1(FinanceService.Models.BusinessRules.Calculations.BenefitCalculatedModel)”访问字段“FinanceService.Excel.Helper.InvoiceHelper+<>c__DisplayClass2_1.CS$ <>8__locals1' 失败。在 <>x.<>c__DisplayClass0_0.<<>m0>b__1(BenefitCalculatedModel y) 在 System.Linq.Enumerable.WhereSelectListIterator`2.MoveNext()

奇怪的是,当包裹在 try-catch 块周围时,它不会引发错误,它会捕获 Exception 对象类型。我只有在调试模式下评估代码时才能找到这个。

有没有其他人在使用 Linq 函数时遇到过这种问题?这是我编写代码方式的错误,还是出于某种奇怪的原因,这是.Net的问题?

此问题的解决方案/解决方法是执行另一个并行 foreach 循环并直接写出评估以找到它,而不仅仅是使用 lambdas。

目前使用 .Net Framework v4.6.1 在 Windows 10 机器上编写此内容

奇怪的是,这取决于字符串值或周围的东西是多么“一致”。在其他情况下,如果我说查找 x=="ABC" 将起作用,但 x==variable 不起作用,尽管 variable=="ABC" 返回一个真实的语句,所以任何一个都应该起作用。

验证所有变量都可以公开访问。

应该使用 Linq 函数一致地返回 ProductCategory 或 ProductName 中提供的不同字符串列表

0 投票
1 回答
40 浏览

java - 增加数组大小而不通过反射重新创建它

我知道数组有一个固定大小的字段。我可以在反射中编辑它以增加它的价值。但是,我不认为这是我唯一需要通过反射来编辑数组大小的事情。我似乎无法在线找到数组类的来源[L

现在的进展:

这导致一个NoSuchFieldException.

我试图破解 Java,类似于如何破解枚举。虽然我不知道所有东西都存放在哪里。我确实可以访问反射工厂: https ://www.niceideas.ch/roller2/badtrash/entry/java_create_enum_instances_dynamically