我有一个bean,我想通过反射访问它的属性.我以字符串形式接收属性名称.bean具有私有字段的getter方法.
我目前正在使用该字段getDeclaredField(fieldName),通过使用setAccessible(true)然后使用它来检索其值来访问它get.
另一种方法是将字段名称大写并添加get到它的前面,然后从类中获取该名称的方法,最后调用该方法以获取私有字段的值.
哪种方式更好?
编辑
也许我应该用"更好"来解释我的意思......通过"更好",我的意思是在最佳实践意义上.或者,如果有任何微妙的警告或差异.
免责声明:我知道IDisposable在处理非托管资源时应该实施.其余的代码应该是确定性的,并且using (...) { }(相当于try {} finally { Dispose(); })保证尽快清理.此外,GC 不会调用Dispose(),因此推荐的模式是覆盖Finalize()随后调用的方法(使用析构函数语法在C#中)Dispose().GC通常会调用Finalize()(除非GC.SuppressFinalize()被调用).
问题:所以现在我已经解决了这个问题,我有一个奇怪的场景,using (SqlConnection...) { }由于我无法控制代码,我无法做到这一点.我通常可以做一个确定性的Dispose(),但不能保证.我使用Reflector进行反汇编SqlConnection并看到它使用Dispose(),但除非我是盲目的,否则没有终结器/析构函数(Finalize()或~SqlConnection()).这是否意味着GC不会"清理"(发送回池)连接在奇怪的情况下我不能?我找不到任何确定的东西......
我一直在使用gimite/web-socket-j来实现一个简单的Chrome和Safari开发版本的WebSocket.我想从Ruby服务器转移到Node.js. 突然间它除了Chrome之外什么都不起作用.
我怀疑这与我需要实现的Flash套接字策略文件有关.我想将其作为外部Node.js进程实现,以免与原始应用程序混淆.我正在使用node-websocket-server来实现与Node.js的WebSocket协议,我再次也不想搞砸它.
看起来最简单的事情就是运行flashsocket.js,但运行时会出现以下错误:
sys:334
ctor.prototype = Object.create(superCtor.prototype, {
^
TypeError: Object prototype may only be an Object or null
at Function.create (native)
at Object.inherits (sys:334:29)
at Object.<anonymous> (/Users/me/Projects/testing/websocket/node-websocket-server/flashsocket.js:10:16)
at Module._compile (node.js:472:23)
at Module._loadScriptSync (node.js:479:10)
at Module.loadSync (node.js:349:12)
at Object.runMain (node.js:532:24)
at node.js:762:10
Run Code Online (Sandbox Code Playgroud)
在这里,我们遇到了Node.js所喜爱的可爱的神秘错误.
我的问题是,是否有一个独立的全局闪存套接字策略服务器,我可以运行Node.js或其他应用程序?我的理解是我只需要将它驻留在端口843上.或者是否有另一个用于Node.js的WebSocket库,它将像Ruby服务器一样处理Flash策略?
大家早上好,
我正在为c ++寻找一种非常快速的二进制序列化技术.我只需要序列化对象中包含的数据(没有指针等).我希望它尽可能快.如果它特定于x86硬件是可以接受的.
我熟悉这样做的C方法.作为一项测试,我在板凳上标记了几种技术.我发现C方法比我实现的最好的C++方法快40%.
有关如何改进C++方法(或执行此操作的库)的任何建议?任何可用于内存映射文件的东西?
谢谢
// c style writes
{
#pragma pack(1)
struct item
{
uint64_t off;
uint32_t size;
} data;
#pragma pack
clock_t start = clock();
FILE* fd = fopen( "test.c.dat", "wb" );
for ( long i = 0; i < tests; i++ )
{
data.off = i;
data.size = i & 0xFFFF;
fwrite( (char*) &data, sizeof(data), 1, fd );
}
fclose( fd );
clock_t stop = clock();
double d = ((double)(stop-start))/ CLOCKS_PER_SEC;
printf( "%8.3f seconds\n", d ); …Run Code Online (Sandbox Code Playgroud) 我有一个用本机C++实现的Windows服务(实际上是一个服务组件).我希望能够使用NT AUTHORITY/LOCAL SERVICE帐户运行它,但我希望它能够在某处存储一些启动状态信息.是否存在本地服务帐户具有写访问权限的位置?据我所知,内置帐户不像普通用户帐户那样获得主目录.
大家早上好,
我正在尝试重构SQL存储过程.我不是SQL专家,但有些东西告诉我必须有更好的方法来做到这一点.
IF @ipv_dtEndDate IS NOT NULL
BEGIN
SET @ipv_dtEndDate = DATEADD(hh,23,@ipv_dtEndDate)
SET @ipv_dtEndDate = DATEADD(mi,59,@ipv_dtEndDate)
SET @ipv_dtEndDate = DATEADD(ss,59,@ipv_dtEndDate)
END
Run Code Online (Sandbox Code Playgroud)
稍后在WHERE子句中使用此值.这些过滤器似乎很难理解.我希望能够提出更清洁的实施方案.
AND qtrh.StatusTime <= IsNull(@ipv_dtEndDate, qtrh.StatusTime)
Run Code Online (Sandbox Code Playgroud)
这个日期计算......
AND DATEDIFF(ss,qtrh.StatusTime,ISNULL(@dtNow,DATEADD(ss,-1,qtrh.StatusTime))) < DATEDIFF(ss,ISNULL(@dtDateOptionCompare,GETDATE()),GETDATE())
Run Code Online (Sandbox Code Playgroud)
......看起来很复杂,难以理解.如果有任何SQL专家对如何改进这一点有一些建议,我很乐意听到一些想法.谢谢你的时间.度过一个愉快的假期周末.
干杯,
〜在圣地亚哥
假设Stackoverflow想要轻松"复制链接到这个问题"链接.当你点击这个链接上有什么是你最好的程序员笑话?,它会将此HTML添加到剪贴板:
<a href="https://stackoverflow.com/questions/234075">What is your best programmer joke?</a>
Run Code Online (Sandbox Code Playgroud)
所以当你粘贴到Gmail或其他任何东西时,它看起来像这样:你最好的程序员笑话是什么?
以跨浏览器的方式实现这一目标的最佳方法是什么?
我相信我理解如何设置NSAttributedString值,但实际上你是如何在界面中显示它们的呢?
示例:UILabel,UITextView等
非常感谢具体说明/
.net ×1
browser ×1
c# ×1
c++ ×1
clipboard ×1
css ×1
css-shapes ×1
finalizer ×1
getmethod ×1
html ×1
idisposable ×1
iphone ×1
java ×1
javascript ×1
node.js ×1
reflection ×1
security ×1
sql ×1
sql-server ×1
string ×1
websocket ×1