相关疑难解决方法(0)

使用带有POP3协议的javamail检索所有未读电子邮件

我正在尝试访问我的Gmail帐户并从中检索所有未读电子邮件的信息.

我在引用很多链接后编写了我的代码.我给出了一些链接供参考.

使用Java通过GMail帐户发送和接收电子邮件

使用JavaMailAPI接收邮件的Java代码

为了测试我的代码,我创建了一个Gmail帐户.所以我从Gmail收到了4封邮件.我在检查邮件数量后运行我的应用程序.这显示了正确的结果.4封未读邮件.显示所有信息(例如日期,发件人,内容,主题等)

然后我登录到我的新帐户,阅读其中一封电子邮件并重新运行我的应用程序.现在未读消息的计数应为3,但显示"未读消息数:0"

我在这里复制代码.

public class MailReader

{

    Folder inbox;

    // Constructor of the calss.

    public MailReader() {
        System.out.println("Inside MailReader()...");
        final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";

        /* Set the mail properties */

        Properties props = System.getProperties();
        // Set manual Properties
        props.setProperty("mail.pop3.socketFactory.class", SSL_FACTORY);
        props.setProperty("mail.pop3.socketFactory.fallback", "false");
        props.setProperty("mail.pop3.port", "995");
        props.setProperty("mail.pop3.socketFactory.port", "995");
        props.put("mail.pop3.host", "pop.gmail.com");

        try

        {

            /* Create the session and get the store for read the mail. */

            Session session = Session.getDefaultInstance(
                    System.getProperties(), null);

            Store store = session.getStore("pop3");

            store.connect("pop.gmail.com", 995, "abc@gmail.com", …
Run Code Online (Sandbox Code Playgroud)

java pop3 jakarta-mail

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

List和Array之间的区别

可能重复:
原始数组与ArrayList

java中List和Array有什么区别?或者Array和Vector之间的区别!

java

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

数组字符串声明

我有一个令人沮丧的问题,这很容易.java中的数组似乎令人沮丧,不直观.

我有一个名为title的String数组,它有几个标题

这是阵列的一部分

    private String[] title = {
        "Abundance",
        "Anxiety",
        "Bruxism",
        "Discipline",
        "Drug Addiction"
    }
Run Code Online (Sandbox Code Playgroud)

这部分似乎没问题,因为代码编译并运行得很好现在我想基于这个数组创建另一个数组.新数组将与来自此数组的数据连接成静态文本,然后是更多静态文本.

我定义了两个静态字符串

    String urlbase = "http://www.somewhere.com/data/";
    String imgSel = "/logo.png";
Run Code Online (Sandbox Code Playgroud)

所以我添加了新数组的声明

    String[] mStrings;
Run Code Online (Sandbox Code Playgroud)

然后我创建一个基本的for循环来迭代并创建新数组的元素

    for(int i=0;i<title.length;i++) {
        mStrings[i] = urlbase + title[i].replaceAll("[^a-zA-Z]", "").toLowerCase() + imgSel;
    }
Run Code Online (Sandbox Code Playgroud)

循环获取数组值并去除非alpha字符并使其小写

吸毒成瘾

drugaddiction

我想最终得到这样的东西

mStrings[0]="http://www.somewhere.com/data/abundance/logo.png"
mStrings[1]="http://www.somewhere.com/data/anxiety/logo.png"
mStrings[2]="http://www.somewhere.com/data/bruxism/logo.png"
mStrings[3]="http://www.somewhere.com/data/discipline/logo.png"
mStrings[4]="http://www.somewhere.com/data/drugaddiction/logo.png"
Run Code Online (Sandbox Code Playgroud)

我尝试了几种不同的尝试来声明mStrings,但是当我把它遗漏时,所有这些都是不正确的Eclipse表明了这一点

 String[] mStrings; 
Run Code Online (Sandbox Code Playgroud)

现在这看起来应该是相当容易和正确的但是当我输入任何东西之后我得到一个错误说

 Syntax error on token ";", { expected after this token
Run Code Online (Sandbox Code Playgroud)

因为它与另一个数组是一对一的,所以我在声明中尝试了这个,但它也失败了

    String[] mStrings[title.length];  
Run Code Online (Sandbox Code Playgroud)

只是给它一个数量

我认为错误是声明中的某个地方,但我似乎无法找到任何明确说明的文档.

似乎它不仅期望一个声明,而且还要加载数组,这是我不想要的,但我也尝试加载它有三个元素,但它仍然无法正常工作

正如我所说,虽然我想在for循环中加载它

任何帮助将不胜感激.

我确实尝试设置数组大小,但得到了相同的错误

这是确切的代码

也许它在其他地方

import android.app.Activity;
import android.os.Bundle; …
Run Code Online (Sandbox Code Playgroud)

arrays android

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

如何在Java中声明对象数组?

可能重复:
如何在Java中声明数组?

假设我有一辆对象车(类车),我想创建一个N个车的阵列.我如何在Java中声明?

vehicle[N]= car=new vehicle [];
Run Code Online (Sandbox Code Playgroud)

这是正确的吗?

java arrays

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

在 docker 上运行 java 代码

我尝试在 docker 上运行 java 代码,但我遇到了一个无法解决的错误,你能帮帮我吗?!

我有一个非常简单的java代码,用于计算平均值。

import java.util.Scanner;

class Ave
{
     public static void main(String args[])

     {

          int n;
          double res=0;

      Scanner reader=new Scanner(System.in);

      System.out.println("Enter how many numbers to calculate the avrage ");

          n=reader.nextInt();

      int a[]=new int[n];

      System.out.println("Enter   "+n+"  numbers");

          for(int i=0;i<n;i++)
           a[i]= (int) reader.nextDouble(); 

      res=Ave.CalAvg(a,n); 

      System.out.println("The average is " +res/n);

     }

       static double CalAvg(int  a[],int n)
       {
       double res=0;

       for(int i=0;i<n;i++)
           res =res+a[i];

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

我的 Dockerfile 是

FROM alpine:latest
ADD Ave.class Ave.class
RUN apk --update add …
Run Code Online (Sandbox Code Playgroud)

java unix docker dockerfile

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

如何传递函数数组文字?

如何在不使其成为单独变量的情况下传递数组?例如,我知道这有效:

class Test{
    public static void main(String[] args){
        String[] arbitraryStrings={"foo"};
        takesStringArray(arbitraryStrings);
    }
    public static void takesStringArray(String[] argument){
        System.out.println(argument);
    }
}
Run Code Online (Sandbox Code Playgroud)

但我不想让数组成为变量,因为它只在这里使用.有没有办法做这样的事情:

class Test{
    public static void main(String[] args){
        takesStringArray({"foo"});
    }
    public static void takesStringArray(String[] argument){
        System.out.println(argument);
    }
}
Run Code Online (Sandbox Code Playgroud)

java arrays

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

将数组常量传递给枚举构造函数

Java 枚举允许您将参数传递给构造函数,但我似乎无法传递数组。例如,下面的代码编译没有错误:

enum Color {
    RED(255,0,0),
    GREEN(0,255,0),
    BLUE(0,0,255);

    int[] rgb;

    Color(int r, int g, int b) {
        rgb[0] = r;
        rgb[1] = g;
        rgb[2] = b;
    }
}
Run Code Online (Sandbox Code Playgroud)

但是如果同样的数据作为数组常量传入,代码将无法编译:

enum Color {
    RED({255,0,0}),
    GREEN({0,255,0}),
    BLUE({0,0,255});

    int[] rgb;

    Color(int[] rgb) {
        this.rgb = rgb;
    }
}
Run Code Online (Sandbox Code Playgroud)

我还尝试了创建新 int[] 数组的变体,例如:

...
RED(new int[]{255,0,0}),
...
Run Code Online (Sandbox Code Playgroud)

没有运气。我认为问题在于传递数组常量。我不确定它是否是需要更正的简单语法,或者传递此类数据是否存在潜在问题。提前致谢。

java arrays enums

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

Java - 静态和动态数组初始化

是否真的在运行时初始化的每个数组都是动态的,并且在编译期间初始化的每个数组都是静态的?

例如:

int array[];                 
public main() {      
    array = new int[100];    
}
Run Code Online (Sandbox Code Playgroud)

编译器知道数组有多少元素,因此它可以在编译期间启动它?或者我需要给每个int一个值,使它变为静态?像这样:

int array[3] { 1, 2, 3};              
Run Code Online (Sandbox Code Playgroud)

并且可以定义一个数组在main()函数之外应该有多少元素?(没有给每个int一个值)这样:

int array[100];      
public main() {
}
Run Code Online (Sandbox Code Playgroud)

我正在编写一个小游戏,它必须运行得非常快.我读动态数组需要更长的时间来处理,所以我想尝试使用静态数组,但我不确定数组何时变为静态或动态.我在许多不同的教程中搜索,但我找不到答案.
谢谢阅读.

java arrays static initialization dynamic

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

两个非常简单的代码行不起作用,只是没有.(机器人)

我在Android上创建了一个非常简单的应用程序,他们的两行代码只是不起作用.

这两行

protected int images[];
images = [R.drawable.loading, R.drawable.loading1, R.drawable.loading2, R.drawable.loading3, R.drawable.loading4];
Run Code Online (Sandbox Code Playgroud)

是的,我知道你可以将这两行作为一行,但在程序中,一行位于类的开头,另一行位于onCreate().

错误:

1.Red在第二个"["字符下划线.消息:意外的令牌

2.Red在第二个"]"字符下划线.消息: ; 预期

我是Android开发的初学者,这可以在As3,Javascript和C++中使用,但似乎不适用于此.

你们中的许多人告诉我使用{}(大括号)而不是[](方括号),但是大量的代码不起作用.这是获得红色下划线的部分:

{R.drawable.loading, R.drawable.loading1, R.drawable.loading2, R.drawable.loading3, R.drawable.loading4}
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误:这里不允许 使用数组初始化程序如果有帮助,我正在使用intelliJ.并且第一行位于类的开头,另一行位于'onCreate()'.

arrays android intellij-idea

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

锯齿状数组:非法的表达式开始

我看到这个教程,想知道为什么 Java 编译器会为最后一个示例抛出错误。有人可以解释一下吗?

\n\n

这是摘录:

\n\n

--

\n\n

Java 的丑陋:语法不规则和即席逻辑

\n\n

在这种不规则但方便的语法中:int[] v = {3,4};,它一次性完成了几件事:{数组类型声明,值分配,元素数量声明,槽履行}。然而,这种句法特性不能普遍使用。例如,以下是一个语法错误:

\n\n
int[] v = new int[2];\nv = {3, 4};\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是完整的代码,您可以尝试一下。

\n\n
public class H {\n    public static void main(String[] args) {\n        int[] v = new int[2];\n        v = {3,4};\n        System.out.print(v[0]);\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

编译器错误为:\xe2\x80\x9c illegal start of expression\xe2\x80\x9d。

\n

java jagged-arrays

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