小编Han*_*etz的帖子

重载真的是获取Java中方法参数的默认值的唯一方法吗?

我是Java的新手,从Python和PHP,我习惯了函数参数的默认值.

所以我养成了编写方法的习惯,这些方法旨在从稍微不同的情况调用,你只想设置一些值.例如,在我的PHP代码中,这种情况很常见,因为我有工厂方法为对象实例提供稍微不同的属性.

在Java中,似乎我必须有一个方法需要所有参数,然后是几个重载的变量,这些变量将调用该方法,其中一些参数设置为默认值,一些参数由调用者提供.哪,好吧,好吧,但有时会让我紧张.

我记得在C++和ActionScript的一些简短的短途旅行中,这已经让我烦恼了.现在,更有经验的Java开发人员有这方面的一些捷径吗?

在我看来,从技术上讲,这个问题已被所有帖子的总和所回答为"是的,它是".我在下面打开了一个wiki帖子来收集各种替代解决方案,如果您愿意,请提供帮助.我发现所有这些都非常有用,可以作为典型Java构造的灵感和学习示例.

java default overloading

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

Java:泛型不适用于我的方法,我还能做什么?

在下面的代码中,我希望第二种方法也是通用的,但是因为我在方法中创建了Calendar对象,因为类型擦除,我看不出如何.一种可能性是传递Calendar对象,但这会破坏完全使用此方法的主要目的(不必考虑Calendar对象).

如何使第二种方法适用于Calendar的多个子类,就像第一种方法一样?

public static <U extends Calendar> CalendarMatch<U> tpFromCalendar(U dt)
{
    // we want to do all comparisons on UTC calendars
    dt.setTimeZone(TimeZone.getTimeZone(DEFAULT_TZ_ID));
    return new CalendarMatch<U>(dt);
}

public static CalendarMatch<GregorianCalendar> tpDailyGregorian(int h)
{
    GregorianCalendar dt = new GregorianCalendar(TimeZone.getTimeZone(DEFAULT_TZ_ID));
    dt.clear();
    dt.set(Calendar.HOUR, h);

    // this works because of type inference
    return tpFromCalendar(dt);
}
Run Code Online (Sandbox Code Playgroud)

java generics

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

是否有类似Microsoft的TechNet或MSDN的Apple订阅?

我想测试设计为在Mac上运行的软件,并且需要几个操作系统版本(旧版本)以及其他Mac软件来设置我的(虚拟)测试机器.

对于Windows上的相同方案,我可以使用TechNet或MSDN订阅提供的许可证.在ADC Mac开发中心,我找不到有关可用内容的任何具体信息.ADC会员资格是否让我下载软件/操作系统进行测试?如果没有,有什么可用?

macos

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

如何构建DAG的biadjacency矩阵?

对于二分图,您可以将邻接矩阵替换为所谓的biadjacency矩阵:

二部图的邻接矩阵A,其部分具有r和s顶点,具有形式

    A =  O  B
         BT O

其中B是r×s矩阵,O是全零矩阵.显然,矩阵B唯一地表示二分图,它通常被称为它的双邻性矩阵.

现在,DAG是一个二分图,例如,您可以在拓扑上对其进行排序,并使U和V集合分别是奇数或偶数拓扑级别的节点.

这意味着,对于具有n个节点的DAG,我只需要(n/2)2矩阵(平均)而不是2矩阵.问题是,我不知道如何构建它.任何提示?

graph-theory matrix

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

我用哪种类型来表示Java中的任意blob?

我有一个应用程序可以通过各种方法和各种格式接收数据.我有可插拔的接收器,以某种方式获取数据(例如通过轮询邮箱,监听HTTP请求,监视目录的内容等),将其与MIME类型相关联,然后将其传递给包装如下:

public class Transmission {
    private String origin;      // where the data came from
    private String destination; // where the data was sent to
    private String mime;        // the MIME type of the data
    private BLOB data;          // this is what I need an appropriate type for
}
Run Code Online (Sandbox Code Playgroud)

在线下,数据由专业处理程序根据mime字段的值进行处理.我期待像ZIP文件,Excel文档,SOAP,通用XML,纯文本等等.此时,代码应该与数据中的内容无关.这个data领域的适当类型是什么?ObjectInputStreamByte[]

java data-modeling

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

如何在Eclipse中从Java 6源代码获得Java 5输出?

在项目属性中,在"Java编译器"部分中,有一些"JDK合规性"设置.我想将源兼容性设置为6,将.class文件的兼容性设置为5.这显然是不允许的:我收到消息"类文件兼容性必须大于或等于源兼容性".

这是Eclipse的限制还是Java版本兼容性的基本问题?有变通方法吗?

我想在开发和大多数目标中使用Java 6,但我想为某些目标(如Mac)生成Java 5兼容工件.我很好,如果这意味着有两个版本,只要它是相同的来源.

java compatibility

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

jmap 堆转储实用程序的选项“-J-d64”有什么作用?

手册页说

如果给定进程在 64 位 VM 上运行,则可能需要指定 -J-d64 选项

就是这样。一些堆转储方法确实包括它,没有解释。

更具体地说,我想弄清楚是否不指定该选项可能会破坏我的堆转储(jhat 无法读取它们)。盲目试验成本高昂,因为堆很大,系统是实时的,并且在操作过程中我需要转储的特定点。

java

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

会话数据在哪里属于Wicket?

由于Wicket通过序列化我的页面中的组件自动管理会话状态,我想知道,在哪个级别我应该附加我的状态数据.更具体地说,似乎我遇到的错误是由WebApplication会话之间共享的对象引起的.

  • 会话之间是否共享应用程序实例?
  • 我应该始终将会话数据附加到Page实例吗?
  • 如果我在多个页面上重用具有附加会话状态的组件会发生什么?这些实例是否共享,即如果我在一个页面上设置组件的状态,它是否被转移到另一个页面?

我猜,第三个要点取决于对象的身份.Wicket使用什么来确定equals()(例如,它是否正在使用a Map)?

我附加到应用程序对象的数据是我在许多页面中需要的状态,因此我没有将它附加到页面对象.这是在Wicket中做到这一点的正确方法吗?

session wicket

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

Java:为什么二进制OR不按预期工作(参见下面的代码)?

我不明白以下代码的输出:

public static void main(String[] args) {
    int i1, i2, i3, i4;
    byte b;
    i1 = 128;
    b = (byte) i1;
    i2 = (int) b;
    i3 = 0 | b;
    i4 = 1 << 7;
    System.out.format("i1: %d   b: %d   i2: %d   i3: %d   i4: %d\n", i1, b, i2, i3, i4);
}
Run Code Online (Sandbox Code Playgroud)

输出:

i1: 128   b: -128   i2: -128   i3: -128   i4: 128
Run Code Online (Sandbox Code Playgroud)

因为byte是一个8位二进制补码有符号整数,所以在最高有效位中带有1的二进制表示被解释为负值,这就是为什么b变成了-128,我完全没问题.我也明白,在施法时保持解释一致可能是一个好主意,如同i2.但是不应该i3并且i4具有相同的位模式,因此映射到相同的int值?

java binary

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

如何让Maven设置(并保持最新)Eclipse项目的构建路径?

我定义了在pom.xml文件中编译,测试和运行程序的依赖项.但Eclipse仍然有一个单独配置的构建路径,因此每当我更改时,我都必须手动更新另一个.我想这是可以避免的?怎么样?

java eclipse maven-2

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