小编mar*_*gti的帖子

在Emacs中单独使用制表符进行缩进

我喜欢Emacs,但不喜欢它是如何缩进的:要么是无法控制的标签和空格组合,要么只是空格((setq indent-tabs-mode nil)).

我希望Emacs做缩进:

  1. 单独使用标签.

  2. 缩进到固定数量的地方(有时不是6个,其他8个,其他地方有4个).

  3. 能够将一个级别的缩进设置为等于4(或2)个空格.

  4. 如果我更改制表位的值,则所有新打开或重新加载的文件都应使用新值(或者只有重新启动Emacs才会影响此更改?)

以上所有都可能吗?一些设置.emacs或包?

大多数IDE(例如Eclipse)都提供上述功能.

ide emacs indentation

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

无法查看从 Subversion 存储库中删除的文件的内容

不久前我从 Subversion 存储库中删除了一个文件,现在我想看看它的内容。我确定该文件在修订版 68 中已被删除,因此我尝试了以下操作:

svn cat -r 67 path/to/file
Run Code Online (Sandbox Code Playgroud)

从项目根目录,svn 告诉我svn: E155010: The node '/absolute/path/to/file' was not found. 然后我尝试:

 svn list -r 67 path/to
Run Code Online (Sandbox Code Playgroud)

Subversion 清楚地显示了目录中的文件。那么我错过了什么?

我尝试通过检查已删除文件的历史记录来找到答案,但它对我不起作用。

svn version-control

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

混淆在单引号原始字符串文字中转义单引号

以下按预期工作:

>>> print re.sub('(\w)"(\W)', r"\1''\2", 'The "raw string literal" is a special case of a "string literal".')
The "raw string literal'' is a special case of a "string literal''.
Run Code Online (Sandbox Code Playgroud)

由于我想在替换表达式中使用单引号(这是正确的术语吗?),我使用双引号引用它.

但是为了我的启发,我尝试在替换表达式中使用单引号并且无法理解结果:

>>> print re.sub('(\w)"(\W)', r'\1\'\'\2', 'The "raw string literal" is a special case of a "string literal".')
The "raw string literal\'\' is a special case of a "string literal\'\'.
Run Code Online (Sandbox Code Playgroud)

这两种形式不应该产生完全相同的输出吗?

所以,我的问题是:

  1. 如何在单引号原始字符串中转义单引号?
  2. 如何在双引号原始字符串中转义双引号?
  3. 为什么re.sub()我在第一个参数中不必使用原始字符串,但在第二个参数中我必须这样做.两者看起来像这个Python noob的正则表达式的字符串表示.

如果它有所不同,我在Mac OS X上使用Python 2.7.5(10.9,Mavericks).

python regex string

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

为什么这个泛型方法调用不匹配?

我有一Address节课:

public class Address
{
    //Some stuff
}
Run Code Online (Sandbox Code Playgroud)

并且有一个相应的*Wrapper类来强制执行有关如何使用Address该类的某些规则:

public class AddressWrapper : IWrapped<Address>
{
    private Address _wrapped;

    public Address GetWrapped()
    {
        return _wrapped;
    }

    //And some more
}
Run Code Online (Sandbox Code Playgroud)

其中IWrapped定义为:

public interface IWrapped<T>
{
    T GetWrapped();
}
Run Code Online (Sandbox Code Playgroud)

我有以下通用类来保存这些实体(还有其他实体遵循这种模式Entity和EntityWrapper):

public class GenericRepository
{
    private GenericRepository() { }

    public static void Add<T>(IWrapped<T> entity)
    {
        //Do something
    }

    public static void AddList<T>(IList<IWrapped<T>> entities)
    {
        //Do something
    }
}
Run Code Online (Sandbox Code Playgroud)

我有这个测试代码:

[Test]
public …
Run Code Online (Sandbox Code Playgroud)

c# generics

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

升级Jersey版本后,随机REST API调用失败

最近不得不将Jersey的版本从2.5.1(稍后解释)升级到2.7并且自升级以来,每次我将代码上传到服务器时,随机API调用开始失败,使用以下堆栈跟踪:

org.glassfish.jersey.internal.Errors logErrors: The following warnings have been detected: WARNING: HK2 service reification failed for [com.example.rest.LeaderboardApi] with an exception:
MultiException stack 1 of 2
java.lang.NullPointerException
        at org.jvnet.hk2.internal.Utilities.hasInjectAnnotation(Utilities.java:1484)
        at org.jvnet.hk2.internal.Utilities.findInitializerMethods(Utilities.java:1425)
        at org.jvnet.hk2.internal.DefaultClassAnalyzer.getInitializerMethods(DefaultClassAnalyzer.java:102)
        at org.glassfish.jersey.internal.inject.JerseyClassAnalyzer.getInitializerMethods(JerseyClassAnalyzer.java:239)
        at org.jvnet.hk2.internal.Utilities.getInitMethods(Utilities.java:243)
        at org.jvnet.hk2.internal.ClazzCreator.initialize(ClazzCreator.java:163)
        at org.jvnet.hk2.internal.ClazzCreator.initialize(ClazzCreator.java:200)
        at org.jvnet.hk2.internal.SystemDescriptor.internalReify(SystemDescriptor.java:649)
        at org.jvnet.hk2.internal.SystemDescriptor.reify(SystemDescriptor.java:604)
        at org.jvnet.hk2.internal.ServiceLocatorImpl.reifyDescriptor(ServiceLocatorImpl.java:405)
        at org.jvnet.hk2.internal.ServiceLocatorImpl.narrow(ServiceLocatorImpl.java:2046)
        at org.jvnet.hk2.internal.ServiceLocatorImpl.access$700(ServiceLocatorImpl.java:116)
        at org.jvnet.hk2.internal.ServiceLocatorImpl$6.compute(ServiceLocatorImpl.java:1011)
        at org.jvnet.hk2.internal.ServiceLocatorImpl$6.compute(ServiceLocatorImpl.java:1006)
        at org.glassfish.hk2.utilities.cache.LRUHybridCache$OriginThreadAwareFuture$1.call(LRUHybridCache.java:115)
        at org.glassfish.hk2.utilities.cache.LRUHybridCache$OriginThreadAwareFuture$1.call(LRUHybridCache.java:111)
        at java.util.concurrent.FutureTask.run(FutureTask.java:260)
        at org.glassfish.hk2.utilities.cache.LRUHybridCache$OriginThreadAwareFuture.run(LRUHybridCache.java:173)
        at org.glassfish.hk2.utilities.cache.LRUHybridCache.compute(LRUHybridCache.java:292)
        at org.jvnet.hk2.internal.ServiceLocatorImpl.internalGetDescriptor(ServiceLocatorImpl.java:1093)
        at org.jvnet.hk2.internal.ServiceLocatorImpl.getService(ServiceLocatorImpl.java:616)
        at org.jvnet.hk2.internal.ServiceLocatorImpl.getService(ServiceLocatorImpl.java:606)
        at org.glassfish.jersey.internal.inject.Injections.getOrCreate(Injections.java:173)
        at org.glassfish.jersey.server.model.MethodHandler$ClassBasedMethodHandler.getInstance(MethodHandler.java:185)
        at org.glassfish.jersey.server.internal.routing.PushMethodHandlerRouter.apply(PushMethodHandlerRouter.java:74)
        at org.glassfish.jersey.server.internal.routing.RoutingStage._apply(RoutingStage.java:112)
        at org.glassfish.jersey.server.internal.routing.RoutingStage._apply(RoutingStage.java:115)
        at …
Run Code Online (Sandbox Code Playgroud)

java google-app-engine jersey-2.0

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

更改Google帐户选择器显示的域

在网络应用中,我们使用Firebase Auth来管理登录名和(基本)帐户创建。如果在具有多个Google帐户的活跃用户中使用Google登录选项,则会向用户显示Google帐户选择器,以选择要在我们网站上使用的帐户。其标题如下所示:

选择一个帐户
以继续访问mydomain.com

就我的Web应用而言,它没有显示mydomain.com,而是显示了<firebase-project-id> .firebaseapp.com。

我要做的就是更改,以便帐户选择器弹出窗口显示mydomain.com?

web-applications google-oauth2 firebase-authentication angularfire2

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

VS Code 在本地存储库中看不到更新的依赖项

在 Java 项目中,我依赖于我自己的库。我已通过mvn install在库目录的根目录中运行来将该库安装在本地存储库中。

当我更新库并重新安装它时,VS Code 看不到新添加的方法(一切都可以从命令行编译良好)。

我已经尝试过Java: Force Java Compilation(完全)但没有成功。

我pom.xml右键单击我的库并选择“更新项目”,但这也没有帮助。

如果有什么区别的话,我在 Windows 10 上的 WSL2 (Ubuntu-20.04) 上运行。

除了重新启动 VS Code(这是一个相当麻烦的解决方法)之外,还有什么解决方案吗?

java visual-studio-code

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

JsonMappingException:没有单字符串构造函数/工厂方法

[这不是“ 无法从JSON字符串实例化类型的值的重复项;没有单字符串构造函数/工厂方法:这是简单得多的POJO和JSON。就我而言,解决方案也有所不同。]

我要解析的JSON并通过以下方式创建POJO:

{
    "test_mode": true,
    "balance": 1005,
    "batch_id": 99,
    "cost": 1,
    "num_messages": 1,
    "message": {
        "num_parts": 1,
        "sender": "EXAMPL",
        "content": "Some text"
    },
    "receipt_url": "",
    "custom": "",
    "messages": [{
        "id": 1,
        "recipient": 911234567890
    }],
    "status": "success"
}
Run Code Online (Sandbox Code Playgroud)

如果响应恰好是错误,则看起来像:

{
    "errors": [{
        "code": 80,
        "message": "Invalid template"
    }],
    "status": "failure"
}
Run Code Online (Sandbox Code Playgroud)

这是我定义的POJO:

@Data
@Accessors(chain = true)
public class SmsResponse {

    @JsonProperty(value = "test_mode")
    private boolean testMode;

    private int balance;

    @JsonProperty(value = "batch_id")
    private int batchId;

    private …
Run Code Online (Sandbox Code Playgroud)

java json jackson2

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

等待List <Future>中的每个Future都要完成

我调用一个方法,为a Future中的每个元素返回一次List<Principal>,所以我最终得到一个List<Future<UserRecord>>.

返回的方法Future是库代码,我无法控制代码的运行方式,我只有Future.

我想等待所有的Futures完成(成功或失败),然后再继续.

有没有比这更好的方法:

List<Principal> users = new ArrayList<>();
// Fill users
List<Future<UserRecord>> futures = getAllTheFutures(users);
List<UserRecord> results = new ArrayList<>(futures.size());
boolean[] taskCompleted = new boolean[futures.size()];
for (int j = 0; j < taskCompleted.length; j++) {
    taskCompleted[j] = false;
}
do {
    for (int i = 0; i < futures.size(); i++) {
        if (!taskCompleted[i]) {
            try {
                results.add(i, futures.get(i).get(20, TimeUnit.MILLISECONDS));
                taskCompleted[i] = true;
            } catch (TimeoutException e) { …
Run Code Online (Sandbox Code Playgroud)

java concurrency future java-8

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

Firestore安全规则:使用array_contains确定授权

我可以使用array_containsFirebase安全规则中的等价物吗?

我有一Event堂课(对应Event于events馆藏文件)。每个文档都有一个subscribers列表/数组,其中包含应该能够查询此事件的所有用户的UID:

{
    .
    "subscribers" : ["uidA", "uidB", "uidC"],
    .

}
Run Code Online (Sandbox Code Playgroud)

更明确地说,用户应该能够运行查询:

db().collection("events").whereArrayContains("subscribers", "uidC");
Run Code Online (Sandbox Code Playgroud)

如何编写此安全规则?

我试过了:

match/events/{eventId} {
    allow list: if request.auth.uid in resource.data.subscribers;
}
Run Code Online (Sandbox Code Playgroud)

模拟器告诉我访问将被拒绝。

使用这样的功能还会报告访问被拒绝:

function isSubscriber() {
    return resource.data.subscribers.includes(request.auth.uid);
}

match/events/{eventId} {
    allow list: if isSubscriber();
}
Run Code Online (Sandbox Code Playgroud)

java google-cloud-firestore firebase-security-rules

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

Guice + Jersey集成注入空对象

按照Up和在MaE,Jersey和Guice的AppEngine上运行的优秀步骤- 第3部分,除了将对象注入Jersey POJO之外,我已经能够完成所有工作.

我从该配置中唯一的区别是我也集成了Objectify,但这是有效的.

TestClass注入到HelloWorldServlet工作中的实例(单例),但注入POJO 的TestClass和SecondTest(RequestScoped)对象HeyResource总是如此null.

我怀疑HK2和Guice之间的互动应该归咎于此,但这是我与Guice , Jersey 和 HK2的第一个项目,所以我都在海上.

我的配置是:

  • 平台:赢7
  • GAE SDK 1.9.26
  • Jave 1.7.0_79
  • 泽西岛:2.5.1
  • Guice:4.0
  • Objectify:5.1.7
  • HK2 Guice-bridge:2.2.0
  • Maven 3.3.3

java google-app-engine guice maven-3 jersey-2.0

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

文档的路径对 Firestore 自动生成的随机 ID 有影响吗?

如果我想在将文档保存到 Firestore之前了解其(随机)ID (无需编写自定义代码),我可以执行以下操作:

String id = db.collection("collection-name").document().getId();
Run Code Online (Sandbox Code Playgroud)

"collection-name"如果我提供上面的代码但使用它来id将文档保存到集合中,会有什么不同吗"some-other-collection"?

换句话说,集合名称(或者更一般地说,文档的路径)对 Firestore 生成的随机 ID 有任何影响吗?

Firestore ID 的生成方式是否与确保唯一标识符的 2^120 种方法中描述的类似?

以下代码对于自动生成 Firestore 文档的已知 ID 有多好:

private static SecureRandom RANDOMIZER = new SecureRandom();
.
.
.
byte[] randomId = new byte[120];
RANDOMIZER.nextBytes(randomId);
// Base64-encode randomId
Run Code Online (Sandbox Code Playgroud)

java google-app-engine id-generation google-cloud-firestore

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