小编Sto*_*ica的帖子

由于未声明异常,编译失败,即使它已声明

这个方法给了我一个汇编,我不明白为什么:

private void invokeMethods(Object instance, List<Method> methods)
        throws InvocationTargetException, IllegalAccessException {
    methods.forEach(method -> method.invoke(instance));
}
Run Code Online (Sandbox Code Playgroud)

错误消息是:

未报告的异常java.lang.IllegalAccessException; 必须被抓住或宣布被抛出

这没有意义:已经宣布异常被抛出.

IntelliJ也无法纠正它.在意图操作中,如果我选择" 向方法签名添加例外",则它不会执行任何操作.

我错过了什么?(我是Java 8的新手)

java java-8

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

计算任意列数的百分比

鉴于此示例输入:

ID     Sample1     Sample2      Sample3
One      10          0            5
Two      3           6            8
Three    3           4            7
Run Code Online (Sandbox Code Playgroud)

我需要使用AWK生成此输出:

ID    Sample1 Sample2 Sample3
One   62.50   0.00    25.00
Two   18.75   60.00   40.00
Three 18.75   40.00   35.00
Run Code Online (Sandbox Code Playgroud)

这就是我解决它的方式:

function percent(value, total) {
    return sprintf("%.2f", 100 * value / total)
}
{
    label[NR] = $1
    for (i = 2; i <= NF; ++i) {
        sum[i] += col[i][NR] = $i
    }
}
END {
    title = label[1]
    for (i = 2; i <= length(col) + …
Run Code Online (Sandbox Code Playgroud)

awk bsd

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

BuilderPattern中的逻辑

最近我遇到了一个引起我兴趣的建筑师模式.

所以,我有一个EntityBuilder构建一个Entity,但它不返回实体.这是方法签名:

public void build();
Run Code Online (Sandbox Code Playgroud)

相反,在build()方法内部,它将创建的新对象Entity传递给CacheImplementation实例以存储它.注意:它CacheImpl是在构建器的构造函数中注入的.

public void build(){
    //create new entity
    cacheImplementation.add(entity);
}
Run Code Online (Sandbox Code Playgroud)

这听起来像是最佳做法吗?

稍后编辑0

public interface EntityBuilder {

    void setProperty0(PropertyObject propertyObject0);
    void setProperty1(PropertyObject propertyObject1);
    void setProperty2(PropertyObject propertyObject2);
    //...

    void build();
}

public class EntityBuilderImpl implements EntityBuilder {

    PropertyObject propertyObject0;
    PropertyObject propertyObject1;
    PropertyObject propertyObject2;
    //...

    // setters for all properties
    @Override
    public void build(){
        //create new entity
        cacheImplementation.add(entity);
    }
}
Run Code Online (Sandbox Code Playgroud)

构建器按以下方式使用:

public class EntityProcessor{
  private EntityBuilderFactory entityBuilderFactory;//initialized …
Run Code Online (Sandbox Code Playgroud)

java design-patterns

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

PyCharm不使用选定的virtualenv

PyCharm似乎忽略了配置virtualenv,而是使用基本解释器.

在我的项目中,/Users/janos/dev/git/github/bashoneliners我有一个virtualenv子目录,严格按照我的项目的依赖项安装在其中:

$ . virtualenv/bin/activate
(virtualenv)janos at kronos in ~/dev/git/github/bashoneliners on master
$ pip -V
pip 1.5.6 from /Users/janos/dev/git/github/bashoneliners/virtualenv/lib/python3.4/site-packages (python 3.4)
(virtualenv)janos at kronos in ~/dev/git/github/bashoneliners on master
$ pip freeze
Django==1.9
Markdown==2.6.5
PyJWT==1.4.0
defusedxml==0.4.1
oauthlib==1.0.3
pep8==1.6.2
pyflakes==1.0.0
python-social-auth==0.2.13
python3-openid==3.0.9
requests==2.9.1
requests-oauthlib==0.6.0
six==1.10.0
tweepy==3.5.0
Run Code Online (Sandbox Code Playgroud)

但是如果我在PyCharm中将它添加virtualenvProject Interpreter,它会显示完全不同的包:

在此输入图像描述

这些包与我系统的基本解释器中的包相同/opt/local/bin/python.这驱使我坚果,我真的需要使用包从virtualenv,从我的系统.

这是PyCharm Community Edition 5.0.3.

我之前没有使用旧版本的PyCharm这个问题.我尝试virtualenv在命令行和使用PyCharm 创建一个全新的,并使缓存无效并重新启动,但似乎没有任何工作.PyCharm总是显示相同的包列表,以及包的包virtualenv.即使我virtualenv在PyCharm中创建一个空,它也不会启动为空,而是填充相同的包列表.

当我在命令行上运行时,我的项目工作正常,例如运行Django管理命令,单元测试,一切.我只在PyCharm中遇到问题.

如果我尝试使用PyCharm安装软件包,例如Django,我会收到此错误:

在此输入图像描述

当然许可被拒绝/opt/local/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages,那是系统解释器.它应该尝试在那里安装包,但是 …

django macos virtualenv pycharm

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

.gitignore不忽略node_modules

即使将.gitignore文件添加到.git存储库的根目录后,我也无法使git忽略该node_modules目录.

尚未添加文件供Git跟踪.

我已经经历了早期的堆栈溢出问题,并且还尝试在第一行添加注释行,因为显然Git没有读取该文件的第一行,但它仍然无效.我也尝试使用以下命令,但没有用:

git rm --cached -r .
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮我吗?内容.gitignore:

#first line
node_modules/
Run Code Online (Sandbox Code Playgroud)

git

6
推荐指数
5
解决办法
7724
查看次数

是否可以在LocalSystem帐户下运行控制台应用程序?

是否可以在C#中以编程方式在LocalSystem帐户下运行控制台应用程序?

如果是,我该怎么办?

如果没有,为什么不呢?

谢谢

c# impersonation console-application localsystem

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

Java - 数字游戏 - 同一类中的多个ActionListener

我只有6到7周的时间学习Java,所以如果我的代码很草率或术语关闭,我会提前道歉.我正在尝试创建一个创建随机数的程序,并允许用户猜测,直到他们得到正确的数字.除了学习经验之外,它没有任何实际意义.

我有基本程序工作,我只是想添加其他元素来改进它并获得经验.

该程序在JFrame中运行,并有一个JTextField供用户输入猜测.我为JTextField设置了ActionListener.我想添加一个在游戏开始时显示的"开始"按钮.当用户单击开始按钮时,JTextField应变为活动状态.此外,当用户点击猜测正确答案时,我想使用开始按钮重置程序.我已经尝试了几种方法来做到这一点但没有成功.我相信这将需要同一个类中的多个ActionListener.我甚至不确定这是否可行?

这是我的代码.在此先感谢您的帮助.

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;

public class JMyFrame2 extends JFrame implements ActionListener {
    Random num = new Random();
    int computerGenerated = num.nextInt(1000);
    public int userSelection;
    JTextField numberField = new JTextField(10);
    JLabel label1 = new JLabel();
    Container con = getContentPane();
    int previousGuess;

    // constructor for JMyFrame
    public JMyFrame2(String title) {
        super(title);
        setSize(750, 200);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        label1 = new JLabel(
                "I have a number between 1 and 1000 can you guess my number?" + …
Run Code Online (Sandbox Code Playgroud)

java swing actionlistener

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

无需卷曲即可连接到网站

我正在尝试"examplesite.com:9000/link"使用以下方法连接至此类网站:

echo -e "GET http://google.com HTTP/1.0\n\n" | nc google.com 80 > /dev/null 2>&1
Run Code Online (Sandbox Code Playgroud)

我见过有人用上述代码对Google进行ping操作。我可以使用curlwget来该站点,但是我不想使用那些方法,因为我使用的是不支持curl或的微控制器wget

有人可以解释上面的代码如何工作吗?

bash shell curl get

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

复制virtualenv文件夹后如何在Cygwin中激活virtualenv

完整的初学者在这里。尝试构建一个 Flask Web 应用程序。使用 Windows 8。

在 Cygwin 中激活我的 python virtualenv 时遇到一些问题。到目前为止,我一直在使用 git shell,没有任何问题。

我将我的文件夹(“app”)复制到我的 cygwin 主目录中,它的设置如下:

app - templates
    - static
    - flask - env - scripts - python
                  - ...
    - hello.py
    - ...
Run Code Online (Sandbox Code Playgroud)

我将目录更改为 app 文件夹,然后当我键入命令来激活我的 virtualenv 时:

$ source flask/env/scripts/activate
Run Code Online (Sandbox Code Playgroud)

终端显示:

(env)
Run Code Online (Sandbox Code Playgroud)

所以我假设它正在工作,直到我仔细检查哪个python:

$ which python
Run Code Online (Sandbox Code Playgroud)

这将返回我原来的全局 python 安装,而不是虚拟环境。我已经检查了已安装的软件包以仔细检查我使用的是哪个 python 环境。

我在 git shell 中使用了相同的命令,它激活了正确的 virtualenv。我哪里出错了/我需要改变什么?如果您需要更多信息,请告诉我。

我使用 cygwin 创建了一个新的虚拟环境,当我激活新的 env 时,它可以很好地切换到该环境。为什么它不适用于我复制的文件夹?

python shell cygwin virtualenv

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

仅获取基本分支中不存在的提交范围

我只想获取其 base 中不存在的提交branchAbranchB

例如,考虑一下这段历史:

B1 - B2 - B3 - B4 - B5
           \
            A1 - A2 - A3
Run Code Online (Sandbox Code Playgroud)

我只想获取A1,A2A3。需要注意的是,我事先并不知道哪个提交是什么A1,以及我需要获取多少个提交。我的输入只是两个分支的头,在本例中branchA=A3为 和branchB=B5。基于这样的输入,我需要识别A1并获取A1和之间的所有内容branchA,理想情况下仅此而已。

A1或者,获取包含、A2A3以及足够的信息来识别 的最小提交集A1也可能很有趣。

为什么?branchA在我只需要这些提交(“相对于 发生的变化”)的用例中branchB,获取超过必要提交的内容会减慢我的流程。例如,一个包含数千次提交的大型存储库,以及只有几个提交的功能分支。获取整个历史记录branchAbranchB获取大量我不需要的提交,并且需要大量时间和网络带宽。

我想出了一个丑陋的黑客方法,通过从浅克隆开始,逐步获取越来越多的内容,直到找到共同的提交,来避免获取完整的历史记录:

git clone --depth 1 "$repo" --branch "$branchA" shallow
cd shallow

for ((depth = 8; depth …
Run Code Online (Sandbox Code Playgroud)

git github

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