问题列表 - 第45371页

为什么Java构造函数不能同步?

根据Java语言规范,构造函数不能被标记为同步,因为在创建它的线程完成之前,其他线程无法看到正在创建的对象.这看起来有点奇怪,因为在构造对象时我确实可以有另一个线程查看对象:

public class Test {
    public Test() {
       final Test me = this;
       new Thread() {
           @Override
           public void run() {
               // ... Reference 'me,' the object being constructed
           }
       }.start();
    }
}
Run Code Online (Sandbox Code Playgroud)

我知道这是一个非常人为的例子,但理论上似乎有人可以提出一个更现实的案例,标记构造函数同步将是合法的,以防止像这样的线程的比赛.

我的问题是:Java有没有理由不在构造函数上禁用synchronized修饰符?也许我上面的例子是有缺陷的,或者也许没有理由,这是一个任意的设计决定.在任何一种情况下,我都很好奇,很想知道答案.

java constructor language-design synchronized

63
推荐指数
5
解决办法
3万
查看次数

如何正确使用F#中的TryScan

我试图找到一个关于如何使用的例子TryScan,但没有找到任何,你能帮助我吗?

我想做什么(非常简单的例子):我有一个MailboxProcessor接受两种类型的消息.

  • 第一个GetState返回当前状态. GetState消息经常发送

  • 另一个UpdateState非常昂贵(耗时) - 例如从互联网下载某些内容然后相应地更新状态. UpdateState被称为很少.

我的问题是 - 消息GetState被阻止并等到前面UpdateState服务.这就是为什么我试图用来TryScan处理所有GetState消息,但没有运气.

我的示例代码:

type Msg = GetState  of AsyncReplyChannel<int> | UpdateState
let mbox = MailboxProcessor.Start(fun mbox ->
             let rec loop state = async {
                // this TryScan doesn't work as expected
                // it should process GetState messages and then continue
                mbox.TryScan(fun m ->
                    match m with 
                    | GetState(chnl) -> 
                        printfn "G processing TryScan" …
Run Code Online (Sandbox Code Playgroud)

concurrency f# messages mailboxprocessor

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

IPv5去哪儿了?

既然我们都在转向IPv6,无论我们是否愿意,我都会问:IPv5发生了什么?对于它的哥哥来说,它不够酷,还是在那个规范上做了其他事情?

networking standards ipv4 ipv6

11
推荐指数
2
解决办法
7982
查看次数

javascript 文件中的@required 注释

我正处于尝试为我们的 RIA 应用程序构建 JavaScript 库的起点。目前我们有很多 JavaScript 文件,其函数都在全局范围内,我想尝试为我们的函数添加一些合理的命名空间和上下文。可能将它们变成对象形式。

我一直在寻找其他开源库来帮助我了解构建库的最佳方式。我在一个特定的开源项目中看到了很多带有以下内容的 .js 文件。

/**
 * @required OpenLayers/Map.js
 */
Run Code Online (Sandbox Code Playgroud)

例如。

除了作为文件中的注释之外,这是否还有其他意义?是否有某种方法可以使用此注释或 Java 中的导入语句将其他 .js 文件导入主构建?

javascript annotations

5
推荐指数
2
解决办法
2569
查看次数

解析xml android的字符串

我在android中解析一个名为responseText的xml字符串时遇到了一些麻烦.xml完全有效,并具有以下结构:

<plan>
<entry>
<name>john</name>
<address>uk</address>
</entry>
<entry>
<name>joe</name>
<address>usa</address>
</entry>
</plan>
Run Code Online (Sandbox Code Playgroud)

我用来解析String的代码如下:

    try {
        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
        DocumentBuilder db = dbf.newDocumentBuilder();
        InputSource is = new InputSource();

        is.setCharacterStream(new StringReader(responseText));

        Document doc = db.parse(is);
        NodeList nodes = doc.getElementsByTagName("entry");

        for (int i = 0; i < nodes.getLength(); i++) {

            Element element = (Element) nodes.item(i);

            NodeList name = ((Document) element)
                    .getElementsByTagName("name");
            Element line = (Element) name.item(0);
            Toast.makeText(Containers.this,
                    getCharacterDataFromElement(line), Toast.LENGTH_SHORT)
                    .show();

            NodeList title = ((Document) element)
                    .getElementsByTagName("address");
            line = (Element) title.item(0);
            Toast.makeText(Containers.this,
                    getCharacterDataFromElement(line), Toast.LENGTH_SHORT) …
Run Code Online (Sandbox Code Playgroud)

java xml android

0
推荐指数
1
解决办法
3255
查看次数

动画setHidden:在NSView上通过Cocoa绑定

我目前正在对一个项目进行最后的修改.

很多(如果不是全部)UI逻辑当前依赖于Cocoa Bindings.一些用户界面元素(标签,按钮等)定义了"隐藏"绑定.触发某些事件时,将切换这些元素可见性.

我正在尝试为可见性变化设置动画(通过设置不透明度,甚至可能是缩放比例).这可以通过多种方式轻松完成,可以通过设置相关的图层属性,将动画添加到图层等等.但是,由于我试图完全依赖绑定行为,我"不能"真正做到这直接.

我尝试使用Layer动作实现一个实现,通过定义键kCAOnOrderInkCAOnOrderOut相关元素的动作,但它确实不起作用,因为setHidden:它最有可能是触发NSView而不是CALayer- 这是有意义的.

所以,我的问题是:在Cocoa绑定调用setHidden:时,你将如何在NSView上制作动画setHidden:.

谢谢.

cocoa core-animation interface-builder calayer cocoa-bindings

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

PHP库从点文件生成xdot文件

提前道歉是我在滥用术语,并且对修改表示赞赏.我对有向图很着迷,但我从来没有数学/ cs背景来了解它们的真正含义,我只是喜欢技术,因为它制作了有用的图表.

我正在尝试创建一个Web应用程序功能,该功能将向浏览器呈现动态有向图.我最近发现了Canviz,这是一个基于cavas的xdot渲染器,我想使用它.

Canviz很棒,但它渲染xdot文件(显示?)包含所有复杂的定位逻辑

/* example xdot file */
digraph abstract {
    graph [size="6,6"];
    node [label="\N"];
    graph [bb="0,0,1250,612",
        _draw_="c 9 -#ffffffff C 9 -#ffffffff P 4 0 -1 0 612 1251 612 1251 -1 ",
        xdotversion="1.2"];
    S1 [pos="464,594", width="0.75", height="0.5", _draw_="c 9 -#000000ff e 464 594 27 18 ", _ldraw_="F 14.000000 11 -Times-Roman c 9 -#000000ff T 464 588 0 15 2 -S1 "];
    10 [pos="409,522", width="0.75", height="0.5", _draw_="c 9 -#000000ff e 409 522 …
Run Code Online (Sandbox Code Playgroud)

javascript php directed-graph graphviz

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

对安装程序进行逆向工程

有人有这方面的经验吗?

具体来说,我想了解运行 MSI 时是否正在写入任何注册表项以及哪些文件位于何处。

我正在考虑使用ProcMon来查看 msiexec 进程在运行时正在做什么,但只是想我应该在这里运行它,看看是否有人有更好的方法。

installation windows-installer reverse-engineering

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

WPF DataGrid - 如何自动退出编辑模式?

我已经从Codeplex 实现了WPF DataGrid 单击编辑.在该解决方案中,单击单元格并选择行以实现DataGrid的单击编辑.它运作得很好.

这是代码:

private void DataGridCell_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
    {
        DataGridCell cell = sender as DataGridCell;
        if (cell != null && !cell.IsEditing && !cell.IsReadOnly)
        {
            if (!cell.IsFocused)
            {
                cell.Focus();
            }
            DataGrid dataGrid = FindVisualParent<DataGrid>(cell);
            if (dataGrid != null)
            {
                if (dataGrid.SelectionUnit != DataGridSelectionUnit.FullRow)
                {
                    if (!cell.IsSelected)
                        cell.IsSelected = true;
                }
                else
                {
                    DataGridRow row = FindVisualParent<DataGridRow>(cell);
                    if (row != null && !row.IsSelected)
                    {
                        row.IsSelected = true;
                    }
                }
            }
        }
    }    
Run Code Online (Sandbox Code Playgroud)

但我还希望我的DataGrid在更改单元格值时自动退出编辑模式(不按Enter键).例如,在编辑模式下,我在单元格中有一个组合框.当用户在组合框中选择一个值时,它将自动对所选值进行数据绑定.但是,用户仍然需要单击Enter以退出编辑模式.如何自动退出编辑模式?

我已经尝试侦听属性更改并调用DataGrid的CommitEdit函数以自动退出编辑模式.效果很好,这里是代码:

 void _gameCompareViewModel_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs …
Run Code Online (Sandbox Code Playgroud)

wpf datagrid c#-4.0

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

jQuery和选择器需要一些帮助(没有标签的简单文本)

我有HTML:

<font color=darkgreen>18.96<br><b>18.95</b><br>18.94<br>18.92<br>18.88<br>18.86<br>18.53<br>18.51<br></font>
Run Code Online (Sandbox Code Playgroud)

我需要选择18.96.我试过.children(0),但这让我回归18.95.

jquery

0
推荐指数
1
解决办法
50
查看次数