小编jan*_*jan的帖子

IntelliJ Python 3检查"预期字典,得到一个字典"对于**kwargs超级误报?

我使用Python 3并希望使用默认argparse.ArgumentParser设置的自定义类 进行换行formatter_class=argparse.RawDescriptionHelpFormatter.我可以成功地做到这一点,但IntelliJ IDEA 2017.1与Python插件(PyCharm)给出了以下代码的警告:

class CustomParser(argparse.ArgumentParser):
def __init__(self, formatter_class=argparse.RawDescriptionHelpFormatter, **kwargs):
    # noinspection PyArgumentList
    super().__init__(formatter_class=formatter_class, **kwargs)  # warning in this line for the last argument if suppression comment above removed
Run Code Online (Sandbox Code Playgroud)

如果使用IntelliJ抑制命令删除注释,则对kwargs的警告是"预期字典,得到字典",但它正在工作.这是一个误报警告,还是在没有警告的情况下可以做得更好?这个警告背后是否有一个真正的问题,它有助于避免?

附带问题:使用
formatter_class = kwargs.pop('formatter_class', argparse.RawDescriptionHelpFormatter)而不是在签名中明确定义命名参数是否有区别?根据PEP20,签名中更明确的更好,对吧?

python intellij-idea super kwargs python-3.x

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

如何仅过滤项目的某个子路径中的资源文件夹?

在Open Resource对话框中找到了问题并回答了Eclipse :: Hide .svn文件,但是不想过滤所有具有给定名称的资源,例如'work',这是一般的.我只想在一个特定的子文件夹'sub'中排除工作文件夹.我看到"文件和文件夹属性"选项"项目相对路径"和"位置",但它们都不能用于以下方面:

子/工作

任何想法如何让资源过滤器只在某个子路径中工作?

eclipse

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

如何断言列表与testng相同?

我找到 junit 的答案,但需要针对testng的解决方案.任何想法都更有用,因为编写自己的for循环?

java testng

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

如何为Java 8u141签署Java Webstart应用程序?

看起来Oracle已经发生了类似于Java 7u45的更改,其中需要设置新的清单值来运行签名的Java Webstart应用程序(请参阅此处).

目前,我们使用Java 8u131签名的应用程序不能从带有错误消息的Java8u141开始 Could not verify signing in resource: (arbitrary resource.jar)

您是否仍然可以使用Java 8u141运行已签名的Webstart应用程序,即我是否有特殊问题?

发行说明中是对安全性更改的说明,但它们与代码签名无关.此外密码路线图是这样的释放并没有真正改变代码签名,尽管Java的8u131例如,在辗转MD5支持.但是Java 8u131对我有用,Maven Java Webstart插件也使用SHA-256-Digest.

java code-signing java-web-start

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

如何在Java Swing中定义特殊键的快捷方式,例如德语变音键Ä?

如何为顶级特殊键(如德语变音键)定义键盘快捷键Ä?我找到了一种映射用于默认美国布局键的unicode字母的方法,请参见此处.但德国变音关键的关键事件Ä是:

java.awt.event.KeyEvent[KEY_PRESSED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar='ä',keyLocation=KEY_LOCATION_STANDARD,rawCode=222,primaryLevelUnicode=228,scancode=40] on frame0 
Run Code Online (Sandbox Code Playgroud)

想法是注册键盘动作:

import java.awt.Dimension;
import java.awt.event.ActionEvent;

import javax.swing.AbstractAction;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.KeyStroke;
import javax.swing.SwingUtilities;


public class KeyStrokeForGermanUmlaut {

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                JFrame frame = new JFrame();
                frame.setPreferredSize(new Dimension(600, 400));
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

                JPanel panel = new JPanel();
                final JLabel label = new JLabel("Text shall change with shortcut");
                panel.add(label);
                panel.registerKeyboardAction(new AbstractAction() {
                    @Override
                    public void actionPerformed(ActionEvent …
Run Code Online (Sandbox Code Playgroud)

java swing keyboard-shortcuts keystroke key-bindings

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

如何激活eclipse java警告"不必要的抛出异常声明"而不会出现误报?

我讨厌声明抛出在任何情况下都不会被这个函数抛出的异常的函数.如果throw在函数体中删除语句而不从throws定义中删除语句,则会在重构中发生这种情况.

这就是为什么我激活设置Java - >编译器 - >错误/警告 - >不必要的代码 - >不必要的抛出异常声明.

在此输入图像描述

如果在接口或超级方法中定义了异常,则会导致误报警告.如果接口的实现A没有抛出一个异常类型,但实现B没有,eclipse会警告实现A中不必要的声明.这同样适用于super和overriden方法.这就是为什么我激活子选项"忽略覆盖和实现方法".

Perfeclty罚款直到这里.但我有相反的情况.重写的方法抛出异常类型,而不是在super方法中使用.看到这个最小的例子:

class Vehicle {
    protected int getStatus() throws GeneralException, StatusException {
        throw new GeneralException("One exception type in super type only");
    }
}

class Car extends Vehicle {
    @Override
    protected int getStatus() throws GeneralException, StatusException {
        throw new StatusException("Special case, that gets special handling");
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,车辆中的StatusException在eclipse中被警告.

在此输入图像描述

当然有人可能认为这是糟糕的设计等,但从实用的角度来看,这将再次发生,并且很可能人们可以接受不改变架构,而只是简单地将新的异常类型添加到超类型.但是如何在这种情况下摆脱误报警告呢?当然可以使用javadoc的子选项,但这也会忽略大多数真正的正面命中.另一种选择是添加SuppressWarning注释"未使用",但其他用户可能会获得该抑制的不需要的警告.

java eclipse exception

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

如何重启Jenkins运行构建队列?

我们的Jenkins执行大规模集成测试.jenkins运行的时间越长,测试需要的时间越长.因此,我们每晚通过cronjob重启Jenkins服务器.同时,构建队列太长而无法完成,并且当前正在运行的作业被取消并且失败.那很难看.我找到了安全重启插件,但等待空构建队列.理想情况下,我会有一份工作可以优先考虑,也可以在白天的每个需要的时间重新启动.此作业需要执行重新启动,因为如果没有剩下的作业,安全重启插件会执行.

continuous-integration jenkins

5
推荐指数
0
解决办法
2844
查看次数

如何在泛型中实现空对象模式?

我喜欢空对象模式的想法,并强迫我使用它,直到它真正感觉正常和良好为止。目前我不知道如何在泛型类型中使用它。我知道可以定义第二个泛型类型并传入类来构造默认对象,但这对于这种模式来说确实开销太大。有什么好的办法吗?

public class GenericExample<T> {
    public static final GenericExample NULL = ???;

    private T attribute;

    public GenericExample(T attribute) {
        this.attribute = attribute;
    }
}

public class HoldGeneric {
    private GenericExample<String> name = GenericExample.NULL;

    public initLater(String name) {
        this.name = new GenericExample<String>(name);
    }
}
Run Code Online (Sandbox Code Playgroud)

java generics null design-patterns

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

如何在Selenium中收听CSS更改?

我有一个div是一个保存按钮,有一个很棒的字体符号.单击div后,将disabled添加一个新的CSS类,其中不透明度会降低,以便在视觉上发出单击按钮的信号.在save事件之后,disabledCSS类再次被删除,按钮再次完全可见.如果我试图通过Selenium天真地验证这一点,那么添加CSS类和删除对于Selenium来说太快了,即

driver.findElement(By.cssSelector(".save-button")).click();
Run Code Online (Sandbox Code Playgroud)

正在工作并找到按钮并单击它,但下一个查找会抛出NoSuchElementException:

driver.findElement(By.cssSelector(".save-button .disabled"));
Run Code Online (Sandbox Code Playgroud)

它不适用于明确的等待(我没有提到简化).Selenium太慢而无法识别更改,即在第二次查找开始之前删除了CSS类.我是否需要在点击事件之前启动听众,可能是通过Selenium的JavaScript解决方案?还有其他方法吗?看起来在Selenium中无法进行线程等待.

html css java selenium

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

如何在Outlook 2010中更改所有假期的颜色?

我通过添加我的国定假日

Outlook -> Options -> Calendar -> Calendar options -> Add holidays

现在,我想一次更改所有假期的颜色。有任何想法吗?

outlook outlook-2010

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

带有 Transparency.OPAQUE 的 createCompatibleImage 和带有 BufferedImage.TYPE_INT_ARGB 的简单 BufferedImage 构造函数有什么区别?

版本 1 和版本 2 有什么区别?他们在我的情况下似乎也这样做,但我到处都读到版本 1 是更好的方法。但为什么?

public BufferedImage getImage(Icon icon) {
    int w = icon.getIconWidth();
    int h = icon.getIconHeight();

    // version 1
    GraphicsDevice gd = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
    BufferedImage image = gd.getDefaultConfiguration().createCompatibleImage(w, h, Transparency.OPAQUE);

    // version 2
    // BufferedImage image = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB);

    Graphics2D g = image.createGraphics();
    icon.get().paintIcon(null, g, 0, 0);
    g.dispose();

    return image;
}
Run Code Online (Sandbox Code Playgroud)

java image

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

如果失败三次或更多次,如何禁用作业?

如果失败了三次或更多次,我想禁用它.我发现这个解决方案立即禁用它.但我想等三次.

jenkins

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