final transient在Java中进行序列化后,是否可以将字段设置为任何非默认值?我的用例是一个缓存变量 - 这就是它的原因transient.我也习惯于制作Map不会改变的字段(即地图的内容被改变,但是对象本身保持不变)final.但是,这些属性似乎是矛盾的 - 虽然编译器允许这样的组合,但我不能将字段设置为除了反null序列化之外的任何东西.
我尝试了以下内容,没有成功:
readObject()- 因为字段是,所以无法完成final.在该示例cache中public仅用于测试.
import java.io.*;
import java.util.*;
public class test
{
public static void main (String[] args) throws Exception
{
X x = new X ();
System.out.println (x + " " + x.cache);
ByteArrayOutputStream buffer = new ByteArrayOutputStream ();
new ObjectOutputStream (buffer).writeObject (x);
x = (X) new ObjectInputStream (new ByteArrayInputStream (buffer.toByteArray ())).readObject ();
System.out.println …Run Code Online (Sandbox Code Playgroud) 我正在考虑重新编写一些我的MVC控制器作为异步控制器.我有这些控制器的工作单元测试,但我试图了解如何在异步控制器环境中维护它们.
例如,目前我有这样的动作:
public ContentResult Transaction()
{
do stuff...
return Content("result");
}
Run Code Online (Sandbox Code Playgroud)
我的单元测试基本上看起来像:
var result = controller.Transaction();
Assert.AreEqual("result", result.Content);
Run Code Online (Sandbox Code Playgroud)
好的,这很容易.
但是,当您的控制器更改为如下所示:
public void TransactionAsync()
{
do stuff...
AsyncManager.Parameters["result"] = "result";
}
public ContentResult TransactionCompleted(string result)
{
return Content(result);
}
Run Code Online (Sandbox Code Playgroud)
您如何构建单元测试?您当然可以在测试方法中调用异步启动器方法,但是如何获得返回值?
我在Google上没有看到任何相关内容......
谢谢你的任何想法.
我需要用关系数据库表示图形信息.
比方说,a连接到b,c和d.
a -- b |_ c |_ d
我可以有a,b,c和d的节点表,我也可以有一个链接表(FROM,TO) - >(a,b),(a,c),(a,d).对于其他实现,可能有一种方法将链接信息存储为(a,b,c,d),但表中的元素数量是可变的.
我正在尝试调试在后台使用JMS的Web服务调用.我让JBoss在调试模式下运行.当我在Eclipse中按F6(执行当前行)时,会跳过某些行.我有这个方法:
@Override
public void log(MsgPayload payload) {
1 Date startTime = new Date();
logger.info("Publishing with BufferedPublisher.java start time:"+startTime);
3 publisher.send(payload);
Date endTime = new Date();
logger.info("Publishing with BufferedPublisher.java end time:"+endTime);
long mills = endTime.getTime()-endTime.getTime();
double secs = mills/1000.0;
logger.info("Publishing with BufferedPublisher.java total time (seconds):"+secs);
}
Run Code Online (Sandbox Code Playgroud)
那会发生什么?我在第1行有断点.当我按下F6时,它会跳过该行并转到第3行.当我再次按F6时,它会进入方法的结尾.一半的代码永远不会被执行.. ??? 我的问题是为什么.我假设我的源代码没有很好地附加到正在执行的实际代码.但我该如何更改它?
谢谢.
我正在开发一个由mercurial控制的版本的项目.
我有一个克隆.我的朋友有一个克隆.
我的朋友对他的克隆进行了一些更改,然后将它们推送到主克隆.我已经对我的克隆做了一些更改,并准备推送到主克隆.但是,在推送到主克隆之前,我想将他的更改合并到我自己的克隆中(我认为这是正确的方法吗?)
我怎样才能做到这一点?
谢谢
有很多应用程序允许您在按下Alt键的同时用鼠标扫描选择文本框或矩形.例如,Visual Studio 2010在代码编辑器中执行此操作.Emacs做到了.Winword做到了.我们都看过了.似乎必须有一个标准模式来编码这种行为,但我似乎无法找到它.
我怀疑我没有用正确的关键字搜索,因为我得到的是矩形,Alt-Left,扫描,选择等的错误命中.
我确信我可以对其进行编码,但这意味着禁用RichTextBox中使用的正常选择代码.这听起来很丑陋,容易出错,而且可能比它的价值更多.
任何人都有一个建议(很好!:-))如何做到这一点或一个如何做的例子?
更新:我刚刚在Code Project上发现了这篇可能适用的文章:基于列的选择
有没有办法链接ListView中包含的特定TextView?我尝试使用android:autoLink="all"但是没有用.我得到了一个脱离背景错误.
还需要注意:ListView是我在ViewFlipper中的第二个视图.
我也尝试过:
View mItemView = mAdapter.getView(2, null, null);
TextView infoText = (TextView) mItemView.findViewById(R.id.rowText2);
Linkify.addLinks(infoText, Linkify.ALL);
Run Code Online (Sandbox Code Playgroud)
在适配器绑定到ListView并切换视图之后.没运气.
这是堆栈跟踪:
06-03 21:19:25.180: ERROR/AndroidRuntime(1214): Uncaught handler: thread main exiting due to uncaught exception
06-03 21:19:25.219: ERROR/AndroidRuntime(1214): android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?
06-03 21:19:25.219: ERROR/AndroidRuntime(1214): at android.app.ApplicationContext.startActivity(ApplicationContext.java:550)
06-03 21:19:25.219: ERROR/AndroidRuntime(1214): at android.content.ContextWrapper.startActivity(ContextWrapper.java:248)
06-03 21:19:25.219: ERROR/AndroidRuntime(1214): at android.text.style.URLSpan.onClick(URLSpan.java:62)
06-03 21:19:25.219: ERROR/AndroidRuntime(1214): at android.text.method.LinkMovementMethod.onTouchEvent(LinkMovementMethod.java:216)
06-03 21:19:25.219: ERROR/AndroidRuntime(1214): at android.widget.TextView.onTouchEvent(TextView.java:6560)
06-03 …Run Code Online (Sandbox Code Playgroud) 我最近在InfoQ上看到了关于Erlang的视频,在该视频中,其中一位创作者介绍了如何替换消息循环的行为.
他只是发送一条消息,其中包含新版本的消息循环代码的lambda,然后调用该消息而不是再次调用旧循环.
这段代码是在Erlang中热插拔的吗?或者是其他更原生的功能?
我在 Informix 数据库上有一个存储过程。我想从该过程的执行中获得一些变量。
我不知道如何创建存储过程。
这是我到目前为止:
CREATE PROCEDURE foo()
RETURN somebar;
END PROCEDURE;
Run Code Online (Sandbox Code Playgroud)
当我运行它时,我收到一个错误:
DEFINE somebar
Run Code Online (Sandbox Code Playgroud)
我想做这个:
execute procedure foo() into bar;
Run Code Online (Sandbox Code Playgroud)
如何执行过程 foo() 并将返回值放入 bar?