小编ini*_*ero的帖子

使用MS批处理文件将程序的输出分配给变量

我需要使用MS批处理文件将程序的输出分配给变量.

所以在GNU Bash shell我会用VAR=$(application arg0 arg1).我在Windows中使用批处理文件需要类似的行为.

有点像set VAR=application arg0 arg1.

cmd batch-file variable-assignment windows-console

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

查找数组中值的索引

linq可以用某种方式来查找数组中值的索引吗?

例如,此循环在数组中定位键索引.

for (int i = 0; i < words.Length; i++)
{
    if (words[i].IsKey)
    {
        keyIndex = i;
    }
}
Run Code Online (Sandbox Code Playgroud)

c# linq arrays

107
推荐指数
4
解决办法
13万
查看次数

java @SafeVarargs为什么私有方法需要是最终的

我在内部类中有一个私有方法,它是私有的我想使用SafeVarargs注释.但是,我需要有静态或最终方法.为什么私有方法也必须是最终的?这不是多余的吗?

java java-7

24
推荐指数
2
解决办法
1350
查看次数

为什么方法参数重新分配给局部变量?

在查看Java API源代码时,我经常看到方法参数被重新分配给局部变量.这为什么要这样做?

void foo(Object bar) {
  Object baz = bar;
  //...
}
Run Code Online (Sandbox Code Playgroud)

这是在java.util.HashMap中

public Collection<V> values() {
  Collection<V> vs = values; 
  return (vs != null ? vs : (values = new Values())); 
}
Run Code Online (Sandbox Code Playgroud)

java

15
推荐指数
1
解决办法
857
查看次数

设置ant bootclasspath:JDK 1.7有一个新的javac警告,用于设置没有bootclasspath的旧源

如何将ant bootclasspath与-source 1.5 -target 1.5一起设置?

这怎么可能不是1.5 JDK的硬编码路径?我可以将环境变量设置为bootclasspath,类似于如何从ant使用JAVA_HOME吗?

理想情况下,我想做一些事情,例如设置环境变量或将参数传递给ant.

java ant javac java-7

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

用16位字更快地在C#中交换字节序

必须有一个更快更好的方法来交换16位字的字节然后这个:

public static void Swap(byte[] data)
{
    for (int i = 0; i < data.Length; i += 2)
    {
        byte b = data[i];
        data[i] = data[i + 1];
        data[i + 1] = b;
    }
}
Run Code Online (Sandbox Code Playgroud)

有没有人有想法?

c# endianness

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

JTree节点标签经常更改,但缓存宽度

目前,我正在使用自定义TreeCellRenderer来处理我的JTree的标签和图标更改.当我需要更改几个节点上的文本时,问题就出现了.TreeCellRenderer非常有效,因为它显示了新文本.但是,初始文本的宽度将被缓存并且不会更新.我试图通过覆盖TreeCellRenderer中的getPreferredSize来破解它,但由于我有html字符串,因此无法正常工作.我甚至试过解析标签并获得宽度,但它仍然不完美.我使用过SwingUtilities和FontMetrics.

似乎使用树的后台DefaultTreeModel.nodeChanged(TreeNode)是更改节点的正确方法.但是,我需要一个额外的数据结构来处理访问需要更改的节点.就个人而言,我只想更改需要更改的节点.但是,这将需要另一个数据结构来查找需要更新的所有节点.在这种情况下,支持JLabel大小缓存的最佳方法是什么?

java swing jtree

7
推荐指数
1
解决办法
3685
查看次数

流程需要重定向输入

我有一个UNIX本机可执行文件,需要像这样输入参数

prog.exe <foo.txt.

foo.txt有两行:bar baz

我正在使用java.lang.ProcessBuilder来执行此命令.不幸的是,prog.exe只能使用文件中的重定向.有什么方法可以模仿Java中的这种行为吗?

当然,

ProcessBuilder pb = new ProcessBuilder("prog.exe", "bar", "baz"); 
Run Code Online (Sandbox Code Playgroud)

不起作用.

谢谢!

java processbuilder

7
推荐指数
1
解决办法
8239
查看次数

JSpinner.DateEditor必须包括年份,即使开始和结束是同一年

我有一个使用SpinnerDateModel的JSpinner,它的开头是2010年1月1日00:00:00.000结束日期是2010年1月1日00:12:34.217.我希望我的JSpinner.DateEditor使用格式HH:mm:ss.SSS但旋转器不会使用此格式旋转.只有在将"yyyy"添加到格式时才会旋转.我怎么能绕过这个?

import java.awt.GridLayout;
import java.util.*;
import javax.swing.*;

public class T extends JPanel {

    public T() {
        super(new GridLayout(2, 2));
        init();
    }

    private void init() {
        Calendar start = GregorianCalendar.getInstance();
        Calendar end = GregorianCalendar.getInstance();
        start.clear();
        end.clear();
        start.set(Calendar.YEAR, 2010);
        end.set(Calendar.YEAR, 2010);
        end.add(Calendar.HOUR_OF_DAY, 12);
        SpinnerDateModel m1 =
                new SpinnerDateModel(start.getTime(), start.getTime(),
                end.getTime(), Calendar.MILLISECOND);
        SpinnerDateModel m2 =
                new SpinnerDateModel(start.getTime(), start.getTime(),
                end.getTime(), Calendar.MILLISECOND);
        JSpinner workingSpinner = new JSpinner(m1);
        workingSpinner.setEditor(
                new JSpinner.DateEditor(workingSpinner,
                "yyyy HH:mm:ss.SSS"));
        JSpinner notWorkingSpinner = new JSpinner(m2);
        notWorkingSpinner.setEditor(
                new JSpinner.DateEditor(notWorkingSpinner,
                "HH:mm:ss.SSS"));
        add(new JLabel("Working"));
        add(workingSpinner);
        add(new …
Run Code Online (Sandbox Code Playgroud)

java swing jspinner

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

在C#中将数组中的字节从big endian交换到little endian的快速方法

我正在读取一个big-endian的二进制流.BitConverter类自动执行此操作.不幸的是,我需要的浮点转换与BitConverter.ToSingle(byte [])不同,所以我有一个同事的自己的例程.但输入byte []需要是little-endian.有没有人有一种快速的方法来转换byte []数组的字节顺序.当然,我可以交换每个字节,但必须有一个技巧.谢谢.

c# endianness

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

将继承类标记为不可序列化的最佳方法

如果我继承自可序列化的类,但我特别不希望我的类可序列化; 什么是严格防止序列化的最佳方法?

如果在java.io.Serializable中有一个方法,我可能会抛出异常,但Serializable为空.

java

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

使用反射来获得方法; 找不到接口类型的方法参数

也许我在这里缺少一些简单的东西,但是如何获得一个方法,其参数是使用反射的接口.

在下面的例子newValue中将被List<String>称为foo.所以我会打电话addModelProperty("Bar", foo);但是这只适用于我,如果我不使用界面,只使用LinkedList<String> foo.如何使用接口newValue并从中获取model具有接口作为参数的方法addBar(List<String> a0)

这是一个更详细的例子.(基于:此示例)

public class AbstractController {
  public setModel(AbstractModel model) {
    this.model = model;
  }
  protected void addModelProperty(String propertyName, Object newValue) {
    try {
      Method method = getMethod(model.getClass(), "add" + propertyName, newValue);
      method.invoke(model, newValue);
    } catch (NoSuchMethodException e) {
    } catch (InvocationTargetException e) {
    } catch (Exception e) {}
    }
}

public class AbstractModel {
  protected PropertyChangeSupport propertyChangeSupport;
  protected …
Run Code Online (Sandbox Code Playgroud)

java reflection

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

IEnumerable参数数组

使用linq?和XML是否有办法将此IEnumerable转换为值参数的字符串数组?

List<string> idList = new List<string>();
foreach (XElement idElement in word.Elements("id"))
{
    idList.Add(idElement.Value);
}
string[] ids = idList.ToArray();
Run Code Online (Sandbox Code Playgroud)

它会与类似

但我需要XElement.Value参数

IEnumerable query = ...;
MyEntityType[] array = query.Cast<MyEntityType>().ToArray();
Run Code Online (Sandbox Code Playgroud)

c# linq

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