小编Sub*_*der的帖子

Java是否有办法让非库开发人员使用扩展方法?

C#的扩展方法非常适合添加语法糖.Java扩展方法非常适合允许库开发人员向其接口添加方法.

我是一个非库Java开发人员,并且知道我将从库中获取新功能获得很多好处,但我仍然希望拥有C#扩展方法的语法糖功能.

这是,或者在未来的Java版本中是否可行?

例如:我想在String类中添加方法...

String data = StringUtils.capitalize("abcd");  // instead of this
String data = "abcd".capitalize()  // I would like to do this
Run Code Online (Sandbox Code Playgroud)

请不要专注于这个特定的例子,我只展示了我希望能够实现的功能类.

java extension-methods

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

第二个AsyncTask没有执行

我有2个AsyncTask,一个用于创建套接字连接,另一个用于使用这些套接字传输对象.我的代码是这样的:

try {
        connectat = true;
        transmitter = new SocketTransmitter();
        transmitter.execute();
        connector = new socketConnector();
        connector.execute(owner);

        this.open();
    } catch (IOException e) {
Run Code Online (Sandbox Code Playgroud)

但是,从不创建或执行被AsyncTask调用socketConnector.我试图改变顺序但是然后没有创建或执行发射器......

那有什么不对吗?

java sockets multithreading android android-asynctask

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

在构造函数中使用synchronized块有什么用?

我们不能创建构造函数synchronized但可以synchronized在构造函数中编写它.在什么情况下这样的要求会来?我很开心.

package com.simple;
public class Test {
    public Test() {
        synchronized (this) {
            System.out.println("I am called ...");
        }
    }

    public static void main(String[] args) {
        Test test=new Test();   
        System.out.println(""+test);
    }

    @Override
    public String toString() {
        return "Test []";
    }
}
Run Code Online (Sandbox Code Playgroud)

java synchronization

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

Java中垃圾收集的频率是多少?

Java HotSpot™虚拟机中的内存管理文档的第6页包含以下段落:

年轻代集合相对频繁地发生并且高效且快速,因为年轻代空间通常很小并且可能包含许多不再被引用的对象.

在一些年轻一代的藏品中存活下来的物品最终会被提升或保留给老一代.参见图1.这一代通常比年轻一代更大,其占用率增长更慢.因此,老一代的收藏品很少,但需要更长的时间才能完成

有人可以在上述陈述中定义" 频繁 "和" 不常见 "的含义吗?我们在谈论微秒,毫秒,分钟,天

java garbage-collection

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

Java中字节数据类型的实际使用

除此之外字节通过消耗只有八个存储位作为对节约了内存的事实,32位integer。它还有哪些实际用途?我在一篇文章中读到,当我们处理来自网络或文件的数据流时,它很有用。当您处理可能与 Java 的其他内置类型不直接兼容的原始二进制数据时,它们也很有用。任何人都可以用例子来解释这些吗?并说明一些更实际的用途?

java

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

我无法使用它,方法和实例变量

我是编程的新手,如果这是一个愚蠢的错误,我很抱歉,但我一直收到这个错误,"CompanyAddress.java:11: error: cannot find symbol System.out.println(testObject.getName(CompanyName));"我不知道我做错了什么.

主要的.

import java.util.Scanner;
public class CompanyAddress
{
  public static void main(String[] args)
  {
     Scanner scan = new Scanner(System.in);
     test testObject = new test();
     System.out.println("Enter name: ");
     String input = scan.nextLine();
     testObject.getName(input);
     System.out.println(testObject.getName(CompanyName));
  }
}   
Run Code Online (Sandbox Code Playgroud)

我的test.java

import java.util.Scanner;
public class test 
{
    String Name;

    public String getName(String CompanyName) 
    {
        Name = CompanyName;
        return Name;
    }


}
Run Code Online (Sandbox Code Playgroud)

java variables methods instance

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

并行处理何时克服顺序处理?

//    parallel processing

    int processors = Runtime.getRuntime().availableProcessors();
    ExecutorService executorService = Executors.newFixedThreadPool(threads);


    final List<String> albumIds2 = new ArrayList<String>();
    long start2 = System.nanoTime();
    for (final HColumn<String, String> column : result.get().getColumns()) {
        Runnable worker = new Runnable() {

            @Override
            public void run() {
                albumIds2.add(column.getName());
            }
        };
        executorService.execute(worker);
    }
    long timeTaken2 = System.nanoTime() - start2;
Run Code Online (Sandbox Code Playgroud)

我有像上面的例子一样的代码,它创建了一个List<String>专辑ID.该列是来自cassandra数据库的切片.我记录要创建的整个专辑列表所用的时间.

我使用增强的for循环完成了同样的操作,如下所示.

        QueryResult<ColumnSlice<String, String>> result =  CassandraDAO.getRowColumns(AlbumIds_CF, customerId);
    long start = System.nanoTime();
    for (HColumn<String, String> column : result.get().getColumns()) {
        albumIds.add(column.getName());
    }
    long timeTaken = System.nanoTime() - start; …
Run Code Online (Sandbox Code Playgroud)

java parallel-processing

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

未处理的异常类型JSONException

JSONObject login = new JSONObject();
login.put("Key1", "Value1");
Run Code Online (Sandbox Code Playgroud)

我只是尝试使用键和值对创建一个简单的JSON对象.我得到这个例外" Unhandled exception type JSONException".

Map<String,String> map = new HashMap<String,String>
map.put("key1", "value1");
Run Code Online (Sandbox Code Playgroud)

它们是否都是使用键,值对创建对象的等效方法.在创建需要发送到服务的对象时,这是首选方法.

java android

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

Java变量设置

case1,case2和case3之间有什么区别吗?有没有与绩效相关的优势或劣势?

public class Test {

private String name;

    public void action (){

        name = doSome(); // case 1
        setName(doSome()); // case2
        this.name =doSome(); // case3

    }


    public String doSome(){
            return "Hello";
    }

    /**
     * @return the name
     */
    public String getName() {
        return name;
    }


    /**
     * @param name the name to set
     */
    public void setName(String name) {
        this.name = name;
    }
}
Run Code Online (Sandbox Code Playgroud)

java

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

如何获取文件的绝对路径取决于Windows 32位或64位机器

我试图在java上获取绝对文件路径,当我使用以下代码时:

File f = new File("..\\webapps\\demoproject\\files\\demo.pdf")  
String absolutePath = f.getAbsolutePath();
Run Code Online (Sandbox Code Playgroud)

它在32位计算机上提供正确的文件路径

C:\Program Files\Apache Software Foundation\Tomcat6.0\bin\..\webapps\demoproject\files\demo.pdf 
Run Code Online (Sandbox Code Playgroud)

但是当我在64位机器上运行相同时它会给出FileNotFound Exception(因为Program Files(x86)),如何获得正确的路径而不管OS位.请有人帮忙吗

java

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