小编MC *_*ror的帖子

什么是Android中的私钥?

我读了这篇关于签署Android应用程序的文章.我使用Eclipse导出我的Android应用程序,不得不创建一个密钥库(成功)和一个带别名的私钥(也成功).所以我知道我必须使用私钥对应用程序进行签名.

但是,该文章没有对以下问题做出任何澄清:

  • 什么是私钥?
  • 您制作的每个应用程序是否应该有另一个密钥,或者它们应该共享相同的私钥
  • 什么是别名?
  • 为什么应用程序具有有效期?

android private-key

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

为什么在案例块中定义的变量在其他案例块中可用?

可能重复:
为什么变量在case语句中不是本地的?

范围块中定义的变量不能在其外部使用.例如,以下代码段无效:

{
    int anothervar = 4;
}
{
    System.out.println(anothervar);
}
Run Code Online (Sandbox Code Playgroud)

但它看起来像一个case块不会创建分开的范围.

switch (mode) {
    case ONE:
        dosomething();
        return;
    case TWO:
        int[] someints = new int[] { 2, 3, 5, 7 };
        SomeObject obj = new SomeObject();
        return;
    case THREE:
        someints = new int[] { 1, 4, 6, 8, 9 };
        obj = new SomeObject();
        return;
}
Run Code Online (Sandbox Code Playgroud)

为什么我不必someintscase THREE'块' 内声明?
假设mode = THREE,那么someints永远不会达到变量声明,因为声明的case TWO地方someints被跳过了.或者不是吗?它在内部如何运作? …

java switch-statement

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

如何更改 VS Code Code.exe 更新路径?

[Windows 10] 我在自定义目录中安装了“Microsoft VS Code(用户设置)”,每当我尝试更新它时,都会显示:

错误提示 1

然后这个

错误提示 2

Log Info

Dec 23 11:42:40.673 INFO Starting: C:\Users\jeremy\AppData\Local\Programs\Microsoft VS Code\Code.exe, false
Dec 23 11:42:40.674 ERRO Bad arguments: Code path doesn't seem to exist: C:\Users\jeremy\AppData\Local\Programs\Microsoft VS Code\Code.exe
Run Code Online (Sandbox Code Playgroud)

如何更改路径以将其指向存在“Code.exe”的正确目录?

visual-studio-code

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

为什么这个通用赋值是非法的?

我有一堂课:

class Generic<T> {
    List<List<T>> getList() {
        return null;
    }
}
Run Code Online (Sandbox Code Playgroud)

当我Generic用通配符和调用getList方法声明 a时,以下赋值是非法的。

Generic<? extends Number> tt = null;
List<List<? extends Number>> list = tt.getList(); // this line gives compile error
Run Code Online (Sandbox Code Playgroud)

这对我来说似乎很奇怪,因为根据 的声明Generic,很自然地创建 aGeneric<T>并获得 a List<List<T>>when call getList

事实上,它需要我像这样写作业:

List<? extends List<? extends Number>> list = tt.getList(); // this one is correct
Run Code Online (Sandbox Code Playgroud)

我想知道为什么第一个是非法的,为什么第二个是合法的。

我给出的例子只是一些示例代码来说明问题,您不必关心它们的含义。

错误信息:

不兼容的类型:
必需:List<java.util.List<? extends java.lang.Number>>
找到:List<java.util.List<capture<? extends java.lang.Number>>>

java generics bounded-wildcard

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

Java通用构建器

假设我需要一些DerivedBuilder扩展一些BaseBuilder.基础构建器有一些方法foo(返回BaseBuilder).派生构建器有方法bar.方法bar应方法之后被调用foo.为了做到这一点,我可以像这样覆盖foo方法DerivedBuilder:

@Override
public DerivedBuilder foo() {
    super.foo();
    return this;
}
Run Code Online (Sandbox Code Playgroud)

问题是BaseBuilder有很多方法foo,我必须覆盖它们中的每一个.我不想这样做,所以我尝试使用泛型:

public class BaseBuilder<T extends BaseBuilder> {
    ...

    public T foo() {
        ...
        return (T)this;
    }
}

public class DerivedBuilder<T extends DerivedBuilder> extends BaseBuilder<T> {
    public T bar() {
        ...
        return (T)this;
    }
}
Run Code Online (Sandbox Code Playgroud)

但问题是我还是不能写

new DerivedBuilder<DerivedBuilder>()
        .foo()
        .bar()
Run Code Online (Sandbox Code Playgroud)

即使T这是DerivedBuilder.为了不覆盖很多功能,我该怎么办?

java generics builder-pattern

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

使现有Java接口有功能存在危险吗?

通常,在大型项目的上下文中,将现有的,无处不在的接口用于功能接口是否安全?

例如,给定一个现有的接口和类:

public interface Interface {
    public double calculateSomething(double x);
    public void doSomething();
}
Run Code Online (Sandbox Code Playgroud)

由...实施

class InterfaceImplementer implements Interface {

     public double calculateSomething(double x) {
          return 2 * x;
     }

     public void doSomething() {
         // insert specific behavior here
     } 
}
Run Code Online (Sandbox Code Playgroud)

我可以通过定义除一个方法之外的所有方法来安全地更改界面:

public interface Interface {
    public double calculateSomething(double x);

    default void doSomething() {
         // insert some default behavior here
    }
}
Run Code Online (Sandbox Code Playgroud)

这样我就可以将对象定义为

Interface object = new InterfaceImplementer() {

    @Override
    public double calculateSomething(double x) {
        return 2 * x;
    } …
Run Code Online (Sandbox Code Playgroud)

java lambda functional-interface

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

使用Java 8功能在列表中搜索非空列表

我有一个代码片段,我希望使用像lambdas/streams等Java 8功能更简洁可读.

基本上,有一个项目列表,每个项目都有一个错误列表.如果至少有一个项目至少有一个错误,则需要返回"失败".如果没有任何错误的项目,请返回"成功".

Optional<List<Item>> optionalItemList = Optional.ofNullable(message.getItems());

if (optionalItemList.isPresent())
    for (Item item : optionalItemList.get()) {
        Optional<List<Error>> optionalErrorList = Optional.ofNullable((item.getErrors()));
        if(optionalErrorList.isPresent())
            if (!optionalErrorList.get().isEmpty()) {
                return "failure";
            }
        }
        return "success";
Run Code Online (Sandbox Code Playgroud)

java optional java-8 java-stream

9
推荐指数
3
解决办法
696
查看次数

在COBOL中读取STDIN(SYSIN)

我想在COBOL中读取STDIN(又名SYSIN)的行.现在我只想把它们打印出来,以便我知道我有它们.从我正在阅读的所有内容看起来应该可行:

IDENTIFICATION DIVISION.
PROGRAM-ID. APP.

ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.

    SELECT SYSIN ASSIGN TO DA-S-SYSIN ORGANIZATION LINE SEQUENTIAL.

DATA DIVISION.
FILE SECTION.

FD SYSIN.
01 ln PIC X(255).
    88 EOF VALUE HIGH-VALUES.
WORKING-STORAGE SECTION.

PROCEDURE DIVISION.
    OPEN INPUT SYSIN
    READ SYSIN
      AT END SET EOF TO TRUE
    END-READ
    PERFORM UNTIL EOF
        DISPLAY ln
        READ SYSIN
            AT END SET EOF TO TRUE
        END-READ
    END-PERFORM
    CLOSE SYSIN
    STOP RUN.
Run Code Online (Sandbox Code Playgroud)

编译(使用open-cobol和cobc -x),但运行它我得到:

libcob: File does not exist (STATUS = 35) File : '' …
Run Code Online (Sandbox Code Playgroud)

select cobol stdin sysin

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

Smack 4.1在回复超时内无响应

我在我的Android应用程序中使用以下代码:

Thread d = new Thread(new Runnable() {

    @Override
    public void run() {
        SmackConfiguration.setDefaultPacketReplyTimeout(10000);
        XMPPTCPConnectionConfiguration config = XMPPTCPConnectionConfiguration.builder()
                  .setUsernameAndPassword("admin", "password")
                  .setServiceName("192.168.0.200")
                  .setHost("192.168.0.200")
                  .setPort(5223).setSecurityMode(SecurityMode.ifpossible)
                  .build();

        AbstractXMPPConnection conn2 = new XMPPTCPConnection(config);
        try {
            conn2.connect();
            conn2.login();

            Presence presence = new Presence(Presence.Type.unavailable);
            presence.setStatus("Gone fishing");
            // Send the packet (assume we have an XMPPConnection instance called "con").
            conn2.sendStanza(presence);

        } catch (SmackException | IOException | XMPPException e) {
            e.printStackTrace();
            Log.d("TAG", e.toString());
        }

        ChatManager chatmanager = ChatManager.getInstanceFor(conn2);
        Chat newChat = chatmanager.createChat("harsh@192.168.0.200");

        try {
            newChat.sendMessage("Howdy!");
        }
        catch (NotConnectedException …
Run Code Online (Sandbox Code Playgroud)

java android timeout xmpp smack

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

带有特殊字符的零宽度空间

这里有趣的问题,想知道是否有人遇到过它.

我正在构建一个Android应用程序,它有一些特殊字符作为文本(主要是日文字符),我们的设计师需要一些战略性的软回报,因为较小的设备的宽度限制,文本需要包装.

问题是因为文本基本上是日语,所以单词之间没有空格.

我知道我们可以使用\u200b零宽度空间产生这样的字符串:

ABCDEF\u200bghijklmnop

当有足够的空间时,出现这样的情况:

abcdefghijklmnop

如果它需要换行,就像这样:

abcdef
ghijklmnop

问题是,如果不使用标准英文字符,我们使用日语字符似乎不起作用.我们根本没有软线.无论我们把它放在哪里,它总是会在空间不足的地方突破\u200b

ヘルプヘルプ\ u200bヘルプヘルプ

结果是:

ルヘプルヘプルヘプヘ
ルプ

有没有人以前处理过这个问题或有任何关于如何解决这个问题的想法?

android line-breaks textview zero-width-space

8
推荐指数
0
解决办法
581
查看次数