小编Dan*_*nov的帖子

应该使用Closeable作为.NET的IDisposable的Java等价物吗?

更新:正如@PaulGroke在下面指出的那样,Java 7已经发生了变化:现在有了AutoCloseable.这与新的try-with-resources构造没有关联并且受流支持.

AutoCloseable是.NET IDisposable接口的直接Java等价物.


CloseableJava 1.5中引入的接口与流紧密相关,甚至还有一个异常说明符IOException.这表明它应该仅用于流或其他IO相关活动,而不是通用清理逻辑.

当然,该close()方法的描述在流/ IO上下文之外完全没有意义:

void close() throws IOException

关闭此流并释放与其关联的所有系统资源.

因此,我应该使用它上面DisposableDispose()方法声明我自己的接口,并将其用作.NET IDisposable接口的模拟吗?或者我应该重复使用,Closeable即使它可能不是一个完美的合适?

java idisposable

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

是否有可能在setup.py中表达特定于平台的依赖关系而无需构建特定于平台的版本的egg?

我们有一个占位符egg,它不包含任何代码,只是为了从PyPi存储库中提取依赖包列表而存在.

这些依赖包大多数是与平台无关的,但有些只在Win32平台上使用.

是否有可能以某种方式使依赖平台有条件,以便我的install_requires列表中的给定依赖项只会在Win32上安装时被拉下来?

或者:是否可以指定可选依赖项列表,如果可用,将安装,但如果不是,则不会导致easy_install失败?

python distutils setuptools

22
推荐指数
3
解决办法
6786
查看次数

如何在Java中将InputStream转换为String?

假设我有一个InputStream包含文本数据,我想将其转换为String(例如,所以我可以将流的内容写入日志文件).

采取InputStream并将其转换为最简单的方法是String什么?

public String convertStreamToString(InputStream is) { 
    // ???
}
Run Code Online (Sandbox Code Playgroud)

java inputstream stream

21
推荐指数
3
解决办法
7836
查看次数

是否有符合所有StyleCop要求的标准ReSharper代码样式定义?

ReSharper重新格式化代码功能非常方便灵活,特别是JetBrains在3.0版中添加的新代码布局模板灵活性.

是否有一套标准的ReSharper代码样式设置与Microsoft StyleCop强制执行的规则相匹配,因此StyleCop合规性可以像运行ReSharper"重新格式化代码"功能一样简单吗?

resharper stylecop

20
推荐指数
1
解决办法
5456
查看次数

查找序列化对象的serialVersionUID

有没有办法确定serialVersionUID序列化Java对象的生成?

问题是我序列化了一个对象而没有明确指定serialVersionUID.现在反序列化过程抱怨类不兼容.但是我并没有以一种使它不兼容的方式改变这个类.所以我假设serialVersionUID在类中指定它就足够了,因为它存储在对象数据中.为了做到这一点,我需要serialVersionUID从序列化数据中读取.

java serialization serialversionuid

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

如何在.NET 4中实现Stream.CopyTo(Stream)方法?

.NET 4中引入的一个有用的便利是Stream.CopyTo(Stream [,Int32]),它从当前流中读取内容并将其写入另一个流.

这样可以避免需要稍微繁琐的代码,例如:

public static void CopyStream(Stream input, Stream output)
{
    byte[] buffer = new byte[32768];
    while (true)
    {
        int read = input.Read (buffer, 0, buffer.Length);
        if (read <= 0)
            return;
        output.Write (buffer, 0, read);
    }
}
Run Code Online (Sandbox Code Playgroud)

由于我没有在这台机器上安装.NET 4,我想知道是否安装了.NET 4的人可以打开Reflector并向我们展示Framework Class Library团队如何为.NET 4实现此方法.

将它们的实现与上面的代码片段进行比较和对比.特别是,我很想知道选择了什么默认缓冲区大小.

.net .net-4.0

17
推荐指数
1
解决办法
9629
查看次数

批处理文件无法在条件语句中设置环境变量

为什么下面的Windows批处理文件输出Foofollowedby Bar,而不是Baz

@echo off
setlocal

set _=Foo
echo %_%
set _=Bar
if 1==1 (
    set _=Baz
    echo %_%
)
Run Code Online (Sandbox Code Playgroud)

我的系统上的输出(Microsoft Windows XP [版本5.1.2600])是:

Foo
Bar
Run Code Online (Sandbox Code Playgroud)

如果我删除条件语句,则会观察到Foo和的预期输出Baz.

batch-file

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

逗号"izing"项目列表

给定一个字符串列表,将这些字符串连接成逗号分隔列表的最佳方法是什么,最后没有逗号.(VB.NET或C#)(使用StringBuilder或String Concat.)

Dim strResult As String = ""
Dim lstItems As New List(Of String)
lstItems.Add("Hello")
lstItems.Add("World")
For Each strItem As String In lstItems
    If strResult.Length > 0 Then
        strResult = strResult & ", "
    End If
    strResult = strResult & strItem
Next
MessageBox.Show(strResult)
Run Code Online (Sandbox Code Playgroud)

.net c# vb.net string

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

Reactive Extensions的杀手好处?

Reactive Extensions(适用于.NET或JavaScript)的杀手级优势是什么?开发人员为什么要学习和使用它们?

.net javascript functional-programming system.reactive

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

Java:如何避免派生接口中的弃用警告覆盖不推荐使用的成员?

请考虑以下简化的接口继承层次结构:

// Starting point:
public interface Base {
    void Foo();
}

public interface Derived extends Base {
}
Run Code Online (Sandbox Code Playgroud)

它旨在将Foo方法从Base接口移动到Derived接口:

// Desired end-point:
public interface Base {
}

public interface Derived extends Base {
    void Foo();
}
Run Code Online (Sandbox Code Playgroud)

为了逐步实现这种突破性改变,希望在Base一段时间内保持接口的向后兼容性.

这可以通过将Base接口上的方法标记为@Deprecated:

// Intermediate state:
public interface Base {
    /**
     * @deprecated This method is deprecated as of release X. Derived.Foo should be used instead.
     */
    @Deprecated void Foo();
}

public interface …
Run Code Online (Sandbox Code Playgroud)

java overriding interface deprecated

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