问题列表 - 第28121页

最终瞬态场和序列化

final transient在Java中进行序列化后,是否可以将字段设置为任何非默认值?我的用例是一个缓存变量 - 这就是它的原因transient.我也习惯于制作Map不会改变的字段(即地图的内容被改变,但是对象本身保持不变)final.但是,这些属性似乎是矛盾的 - 虽然编译器允许这样的组合,但我不能将字段设置为除了反null序列化之外的任何东西.

我尝试了以下内容,没有成功:

  • 简单字段初始化(在示例中显示):这是我通常所做的,但是在反序列化之后似乎没有发生初始化;
  • 在构造函数中初始化(我相信这在语义上与上面相同);
  • 分配字段readObject()- 因为字段是,所以无法完成final.

在该示例cachepublic仅用于测试.

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)

java serialization final

59
推荐指数
4
解决办法
2万
查看次数

构建MVC2 AsyncControllers的单元测试

我正在考虑重新编写一些我的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上没有看到任何相关内容......

谢谢你的任何想法.

asynccontroller asp.net-mvc-2

10
推荐指数
1
解决办法
1429
查看次数

使用关系数据库表示图形

我需要用关系数据库表示图形信息.

比方说,a连接到b,c和d.

a -- b
|_ c
|_ d

我可以有a,b,c和d的节点表,我也可以有一个链接表(FROM,TO) - >(a,b),(a,c),(a,d).对于其他实现,可能有一种方法将链接信息存储为(a,b,c,d),但表中的元素数量是可变的.

  • Q1:有没有办法在表中表示变量元素?
  • Q2:有没有使用关系数据库表示图结构的一般方法?

database graph

18
推荐指数
1
解决办法
1万
查看次数

修改MP3文件

我有一个MP3文件上传器.我想通过PHP上传时为文件添加一个额外的音轨.那可能吗?

php mp3 file

2
推荐指数
1
解决办法
1225
查看次数

为什么Eclipse在调试JBoss时会跳过行?

我正在尝试调试在后台使用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时,它会进入方法的结尾.一半的代码永远不会被执行.. ??? 我的问题是为什么.我假设我的源代码没有很好地附加到正在执行的实际代码.但我该如何更改它?

谢谢.

java jboss jms

4
推荐指数
1
解决办法
2018
查看次数

在推送到主克隆之前从另一个克隆与我自己的克隆合并?

我正在开发一个由mercurial控制的版本的项目.

我有一个克隆.我的朋友有一个克隆.

我的朋友对他的克隆进行了一些更改,然后将它们推送到主克隆.我已经对我的克隆做了一些更改,并准备推送到主克隆.但是,在推送到主克隆之前,我想将他的更改合并到我自己的克隆中(我认为这是正确的方法吗?)

我怎样才能做到这一点?

谢谢

mercurial

2
推荐指数
1
解决办法
534
查看次数

使用Alt-Left-Mouse扫描在RichTextBox中进行矩形选择?

有很多应用程序允许您在按下Alt键的同时用鼠标扫描选择文本框或矩形.例如,Visual Studio 2010在代码编辑器中执行此操作.Emacs做到了.Winword做到了.我们都看过了.似乎必须有一个标准模式来编码这种行为,但我似乎无法找到它.

我怀疑我没有用正确的关键字搜索,因为我得到的是矩形,Alt-Left,扫描,选择等的错误命中.

我确信我可以对其进行编码,但这意味着禁用RichTextBox中使用的正常选择代码.这听起来很丑陋,容易出错,而且可能比它的价值更多.

任何人都有一个建议(很好!:-))如何做到这一点或一个如何做的例子?

更新:我刚刚在Code Project上发现了这篇可能适用的文章:基于列的选择

c# wpf textselection

5
推荐指数
1
解决办法
1258
查看次数

Android - autoLink

有没有办法链接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)

android listview linkify

3
推荐指数
1
解决办法
3267
查看次数

在Erlang代码热插拔

我最近在InfoQ上看到了关于Erlang的视频,在该视频中,其中一位创作者介绍了如何替换消息循环的行为.

他只是发送一条消息,其中包含新版本的消息循环代码的lambda,然后调用该消息而不是再次调用旧循环.

这段代码是在Erlang中热插拔的吗?或者是其他更原生的功能?

erlang hotswap message-loop

14
推荐指数
1
解决办法
6264
查看次数

Informix,在存储过程中初始化变量

我在 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?

informix spl

2
推荐指数
1
解决办法
5188
查看次数