小编mtk*_*mtk的帖子

使用Anonymous类有什么危害?

在阅读这个问题的答案时出现了这个问题 - 如何在java中加入两个列表.这个答案给出了解决方案

List<String> newList = new ArrayList<String>() { { addAll(listOne); addAll(listTwo); } };
Run Code Online (Sandbox Code Playgroud)

阅读评论,用户说它是邪恶和丑陋的,不应该用于生产.

我想知道使用它有什么害处?为什么在生产中使用它是丑陋的,邪恶的还是坏的?


注意:被问到这是一个问题因为,引用的帖子太旧了(2008年),回答者几个月后就离开了.

java anonymous-class

36
推荐指数
3
解决办法
2645
查看次数

防止游标在插入模式退出时向后移动一个字符

你怎么做的?

额外信用的任务:找出一种方法来强制vim在退出插入模式后立即刷新光标位置

vim cursor-position

33
推荐指数
4
解决办法
6433
查看次数

如何更改蚂蚁的JAVA_HOME?

我在没有root的类服务器上做java工作.每当我尝试使用ant编译时,它指向错误的目录(/usr/tomcat而不是/usr/tomcat/jre).

设置用户帐户时我们被告知要做的一件事就是添加export JAVA_HOME=/usr/tomcat/jre到.bashrc文件中.我不知道是否应该照顾这个问题,但似乎并没有.

那么,我如何更改ant的JAVA_HOME属性,但仅限于运行ant的时候?

编辑: echo $JAVA_HOME指向/usr/tomcat/jre echo $JAVA_HOME\bin要点/usr/tomcat/jrebin

问题是,当我正常运行蚂蚁时,我收到此错误:

Unable to locate tools.jar. Expected to find it in /usr/tomcat/lib/tools.jar
Buildfile: build.xml

compile:
    [javac] Compiling 1 source file to /home/ejm244/build/classes

BUILD FAILED
/home/ejm244/build.xml:9: Unable to find a javac compiler;
com.sun.tools.javac.Main is not on the classpath.

Perhaps JAVA_HOME does not point to the JDK

Total time: 0 seconds
Run Code Online (Sandbox Code Playgroud)

ant java-home

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

在bash中,我如何添加带有前导零的整数并维护指定的缓冲区

例如,我想从001到100计数.意味着零缓冲区将从2,1开始,然后在达到100或更多时最终为0.

例如:001 002 ... 010 011 ... 098 099 100

如果数字与printf"%02d"$ i有预定义数量的零,我可以这样做.但这是静态的而不是动态的,在我的例子中不起作用.

bash shell output-formatting

29
推荐指数
4
解决办法
4万
查看次数

maven程序集包含最终zip/tar中的当前项目jar

我正在使用maven程序集插件生成一个.tar包含其他几个文件的文件,依赖的jar.所有文件都正确地复制到配置中的给定文件夹assembly.xml.

我想在最终的tar文件中包含原始项目jar,但目前还没有看到它.

我发布assembly:single目标时会收到以下消息:

[警告]不能包含项目工件:com.my.newpkg.project1:jar:0.0.3.0; 它没有关联的文件或目录.

在阅读了SO之后,似乎添加了以下配置pom.xml应该添加jar,但仍然没有得到预期的结果.

在pom.xml中配置

<plugin>
   <groupId>org.apache.maven.plugins</groupId>
   <artifactId>maven-jar-plugin</artifactId>
   <version>2.4</version>
   <configuration>
       <archive>
           <manifest>
               <mainClass>com.my.newpkg.project1.MainClass</mainClass>
               <addClasspath>true</addClasspath>
               <classpathPrefix>lib/</classpathPrefix>
           </manifest>
       </archive>
   </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

assembly.xml的片段

<formats>
    <format>dir</format>
    <format>tar</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<dependencySets>
    <dependencySet>
        <outputDirectory>lib</outputDirectory>
        <excludes>
            <exclude>junit:junit</exclude>
        </excludes>
        <fileMode>0755</fileMode>
    </dependencySet>
</dependencySets>
Run Code Online (Sandbox Code Playgroud)

那么,配置还不正确吗?还是我错过了什么?

我们如何将当前项目jar添加到最终的tar中

maven maven-assembly-plugin

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

理解Java堆栈

有这个代码:

public class Main {
    public static void main(final String[] args) throws Exception {
        System.out.print("1");
        doAnything();
        System.out.println("2");
    }

    private static void doAnything() {
        try {
            doAnything();
        } catch (final Error e) {
            System.out.print("y");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

还有输出:

1yyyyyyyy2
Run Code Online (Sandbox Code Playgroud)

为什么它打印"y"八次而不再打印.遇到Java println()时如何调用StackOverflowError

java stack-overflow exception-handling buffered

28
推荐指数
2
解决办法
1008
查看次数

何时在java中使用get/set方法

我想知道何时在我的类中使用get和set方法(getName,setName),classVariable.name = ""而不是简单? = classVariable.getName()

这是使用set和get方法的类的示例

public class ClassExampe {

    String name;
    String course;

    public String getName ( )
    {
        return name;
    }

    public void setName (String studentName)
    {
        name = studentName;           
    }

    public String getCourse ( )
    {
        return course;
    }

    public void setCourse (String studentCourse)
    {
        course = studentCourse;
    }
}
Run Code Online (Sandbox Code Playgroud)

谢谢

java getter-setter

24
推荐指数
4
解决办法
8万
查看次数


JVM在哪里存储原始变量?

Java JVM在哪里存储原始变量,以及原语在使用后释放的内存如何释放?

我猜它是在堆栈上?

java jvm memory-management

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

Tomcat为其他开放日食项目中的类抛出ClassNotFound异常

我有一个eclipse项目结构,看起来像这样:

eclipse
    project a
    project b
Run Code Online (Sandbox Code Playgroud)

所有这些项目都是Maven项目.项目B是Eclipse WTP项目,包含项目A作为依赖项.我正在使用m2eclipse插件.

当我将Project B部署到Tomcat(全部来自Eclipse中)时,它总是抛出错误,说它无法从Project A中找到类.我可以解决这个问题的唯一方法是在Eclipse中关闭 Project A并执行mvn install命令,所以在这一点上,项目A被视为任何其他依赖项.

我希望不必再次重新打开,然后每当我对其进行更改时关闭项目A(这在此阶段经常发生).

我已经尝试将Project A添加到Project B的Build Path中,但是这似乎并没有成功.同样,它只有在我在eclipse中关闭项目时才有效,所以它被视为普通的maven依赖.

仅供参考我正在使用Helios版Eclipse.项目B是一个Spring项目,所以Tomcat在导入所有bean等时自然会失败.

有没有人有什么建议?非常感谢.

java eclipse tomcat m2eclipse classnotfoundexception

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