小编sni*_*10m的帖子

如何在运行方法完成后清理线程?

run()方法完成执行后,应该如何处理Thread ?Java中的Thread需要清理吗?

java multithreading

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

为什么外部类不能扩展内部类?

为什么我不能这样做/是否有解决方法来完成此任务:

package myPackage;

public class A {
    public class B {

    }
}
Run Code Online (Sandbox Code Playgroud)
package myPackage;  

import myPackage.A.B;

public class C extends B {

}
Run Code Online (Sandbox Code Playgroud)
package myPackage;

public class Main {
    public static void main(String[] args) {
        A myA = new A();
        C myC = myA.new C();
    }
}
Run Code Online (Sandbox Code Playgroud)

两个编译错误是

  1. public class C extends B,No enclosing instance of type A is available due to some intermediate constructor invocation

  2. C myC = myA.new C();,A.C cannot be …

java nested-class

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

为什么java方法Integer.toBinaryString(-128)输出七位数?

简单的场景:你有一个字节数组

byte[] message = { 1, 2, 3 };

要以二进制打印出来,您可以使用以下代码:

for (byte b : message) {
    System.out.println(Integer.toBinaryString(0x100 + b).substring(1));
}
Run Code Online (Sandbox Code Playgroud)

(从这个堆栈溢出线程获得该代码)

得到这个输出:

00000001
00000010
00000011
Run Code Online (Sandbox Code Playgroud)



但如果你最后标记-128 ......

byte[] message = { 1, 2, 3, -128 };

00000001
00000010
00000011
0000000
Run Code Online (Sandbox Code Playgroud)

哇!七位二进制数?我觉得这与两个补码有关,但我试着读的越多,我就越困惑.我期待着10000000出现在第四行而不是......

任何人都可以解释为什么Integer.toBinaryString-128是相对简单的术语七位数?


Ye olde javadocThe unsigned integer value is the argument plus 2^32 if the argument is negative; otherwise it is equal to the argument. This value is converted to …

java binary byte twos-complement

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

Android - 使用Event创建自定义日历

我有一个显示特殊日子的应用程序.我想将它们整合到日历中.

事件是静态的,它们不会改变,因此我不必经常更新日历.

我首先想到创建一个本地日历并添加事件,但新的Android版本(从2.3?)似乎不支持这个; 实现我必须创建一个日历提供程序.

我在github上看到了这个项目:https://github.com/dschuermann/birthday-adapter.这很复杂; 它的主要用途是将联系人的生日添加到新日历中.

有很多代码,其中很多我认为我不需要.我真的需要注册到Android的客户经理来集成日历提供商吗?我只需要一个新的日历与我的活动......

使用用户的默认日历并在那里添加所有事件会更容易吗?我可以在描述中添加一些标识符,以便在用户不需要时删除事件.

任何提示,教程或进一步阅读表示赞赏.

Metin Kale

java provider events android calendar

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

如何访问封闭类的实例?

我的问题,抽象地说,是:

非静态内部类如何访问封闭类的实例?为了将实例用作方法调用中的参数以及访问内部类和封闭类之间具有相同名称的方法和变量,这是必需的。

像关键字一样thissuper允许您访问类和父类中具有相同名称的方法和变量的特定版本,是否有关键字来访问封闭类和封闭类中的方法和变量的版本?

如果您感到困惑,请继续阅读:

考虑以下代码示例,其中包含两个类和一个内部类。Main 和 Outer 是“myPackage”包中的两个类(附带说明,由于未知原因,我无法在没有包/默认包的情况下使以下代码工作)。Inner 是一个内部的、非静态的 Outer 类。

package myPackage;

public class Outer {
    public void activate() {
        System.out.println("Outer.activate");
    }
    
    public class Inner {
        public void go() {
            activate();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)
package myPackage;

import myPackage.Outer.Inner;

public class Main {

    public static void main(String[] args) {
        Outer myOuter = new Outer();
        Inner myInner = myOuter.new Inner();
        myInner.go();
    }
}
Run Code Online (Sandbox Code Playgroud)

请注意,我构造了一个Innerwith myOuter.new Inner()。由于 Inner 是非静态的,它必须在其封闭类的现有实例之上构造:在这种情况下,myOuter. 因此,当我调用myInner.go(),myInner …

java nested-class

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

F#嵌套泛型类型与实现类型不兼容

背景:

在F#程序中给出以下两个声明:

  • type A实现接口Wrapped<int>
  • type B实现接口Wrapped<A>

我们说类型A兼容Wrapped<int>并且类型B兼容Wrapped<A>- 兼容,据我所知,这意味着A可以传递给需要的函数Wrapped<int>.

问题:

根据我的编程经验,鉴于以上两个陈述,我希望以下内容也是如此:

  • 类型B应与类型兼容Wrapped<Wrapped<int>>

因为BA作为类型参数,此处Wrapped<int>应该去,并AWrapped<int>兼容.

不是这种情况.以下实施:

type Wrapper<'a> = abstract member Value : 'a

type A =
    | A of int

    interface Wrapper<int> with member this.Value = (let (A num) = this in num)

type B =
    | B of A

    interface Wrapper<A> with …
Run Code Online (Sandbox Code Playgroud)

generics f#

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

Java:哪个更快?局部变量或访问封装?

我最近读了一个StackOverflow问题,表明在访问变量时,使用堆栈比堆更快:

void f() {
    int x = 123; // <- located in stack
}

int x; // <- located in heap
void f() {
    x = 123  
}
Run Code Online (Sandbox Code Playgroud)

但是,我无法通过我的头脑工作,这在我的例子中更快(因为我假设他们都在使用堆栈).我正在研究hitbox计算等,它在函数中使用了很多XY,宽度,高度变量(每个变量最多10-20次).

get()每次使用对象的方法或在函数开头将其设置为局部变量是否更快?

在代码中,它更快(或更高效):

void f() {
    doSomething(foo.getValue() + bar.getValue()); 
    doSomethingElse(foo.getValue(), bar.getValue());
    doAnotherThing(foo.getValue(), bar.getValue());
    // ... <- lot's of accessing (something.getValue());
}
Run Code Online (Sandbox Code Playgroud)

要么

void g() {
    int firstInt = foo.getValue();
    int secondInt = bar.getValue();

    doSomething(firstInt + secondInt);
    doSomethingElse(firstInt, secondInt);
    doAnotherThing(firstInt, secondInt);
    // ... <- lot's of accessing firstInt and secondInt …
Run Code Online (Sandbox Code Playgroud)

java variables optimization performance encapsulation

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

适用于大型项目的Java GUI架构

我想制作一个应用程序,它将作为多个服务器的接口.原因:在默认情况下提供的web iface(我们无法改变它)是我们想念的一些事情,很少有人可以做得更好,并且确保某些东西的自动化会使工作更容易.

我有什么:几乎完成的类与服务器应用程序的Web界面进行通信.

GUI描述:对于某种版本0.1:用户名的文本字段,选择服务器的单选按钮和一个"go"按钮.然后几个(4-12)操作按钮操作数据,2x文本区域与结果,一个标签与一些文本数据 - 我可以管理这个.然后我需要查看数据 - 网格MxN将加载数据,预期大小:7-15列,通常10行或更少,但很少它可以超过1k(甚至更多,但我不需要所有在这种情况下对用户可见).

我需要的是:只是一个建议.我希望从一个简单的版本开始(我已经开始研究它了,但是我坚持太多的事情 - 95%的cos和GUI的全新,5%的cos我是java的新手).我检查了很多教程,但它们都很简单.


真正的问题:

1)验证.在MVC控制器中应该处理所有用户操作 - 它是通过view的方法完成的,类似于button.addActionListener(param); anotherButton.addActionListener(paramp; ...?

1b)我已经看到所有通过一个(嵌套)类实现,然后检查源或smth - 是吗?会有很多按钮等.

2)如何实现数据网格,当我需要对click/dbl点击进行操作时?

4)第一行是标题,其余的应该是可滚动的 - 如果它在网格中或在外面(它自己的网格):

4a)如何确保标题的大小(宽度)与数据中的相同(我不想设置直接大小)

4b)到目前为止,我没有创建任何可滚动的东西,但我认为这很糟糕.如何确保标题将保留在某个位置,其余的可以滚动?

5)如何实施"数据更新"?我有JPanel从中删除网格组件,然后我创建新的并添加数据(简单,但perhapss有另一种方式).最初的改进之一是排序 - 使用与新内容相同的方式?


非常感谢任何答案,我知道这不是很具体,但我发现的例子太简单了.

我计划了很多增强功能,但未来的这些功能我并不介意多次重做GUI/Controller,至少我会练习,但我不想完成代码的一部分并意识到我必须重写一半的控制器和1/4的视图才能实现.

注意:我打算在工作中使用它作为我的工具(如果事情正确,我可以通过几次点击完成我工作的25-50%:-)所以我的意思是这个).

注意#2:我不是编程的新手,但我从来没有创建过GUI(这就是为什么我的菜单栏有2个项目和3个组件的GUI,几乎完成了web-iface连接).

注意#:3个可拖动数据标题,标签数据视图 - 这就是未来的计划:-)

java architecture user-interface swing

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

将“不完整模式匹配”视为错误的 F# 代码属性

我想知道 F# 中是否存在代码功能(不是编译器功能),可以使不完整的模式匹配出现为错误,而不是警告。

我需要这个能够根据具体情况进行处理。即,在代码中的某些地方,我希望不完整的模式匹配成为警告,而在同一程序集中的其他地方,我希望它成为错误。因此,如完整模式匹配的编译时约束所建议的那样,设置编译器标志以将所有不完整模式匹配警告视为错误是不够的。

这可能看起来像

type MyUnion = First | Second

let foo x =
  match x with
  | First -> "hello"
  // raises a compile-time warning

let bar x =
  [<AssertCompleteMatch>]
  match x with
  | First -> "hello"
  // raises a compile-time error
Run Code Online (Sandbox Code Playgroud)

或者该属性可能会应用于该类型,以确保与该特定类型的所有模式匹配都是完整的。

f# pattern-matching

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