小编Mar*_*ger的帖子

为什么方法Message.getFrom()返回一个数组?

Javamail API有一个Massage类,它有一个getFrom()方法,你可以在这里找到:

https://javamail.java.net/nonav/docs/api/javax/mail/Message.html#getFrom()

关于这种方法的两个问题:

  1. 为什么它返回一个Address对象数组而不是一个Address对象?我想不出多个发件人发送邮件的情况.
  2. 该文档说,在某些实现中,它可能与实际发送消息的实体不同.有这样一个实现的例子吗?

java email jakarta-mail

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

为什么要将String转换为String?

有关Oracle Java社区站点的文章作为示例(对于JPA转换器,但我认为这不相关)以下方法:

public Boolean convertToEntityAttribute(String y) {
    String val = (String) y;
    if(val.equals("Y")){
        return true;
    } else {
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

将String y转换为String val有什么用?是否有正当理由这样做?

原创文章:JPA中的新功能

java string

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

如何根据父类中可用的信息进行反序列化

我正在使用Jackson来反序列化Product接口的许多不同实现.这些产品实现有不同的领域,但都有一个InsuredAmount领域.这个InsuredAmount类有一个值字段和IAType领域.这IAType是一个标记接口,具有不同的枚举作为实现.

现在问题是:IAType接口的枚举实现对应于接口的某个实现Product.如何进行通用实现并告诉Jackson找到正确的IAType实现?我应该在Product和IAType接口上使用通用参数来识别产品实现吗?我应该Productable在识别产品实现的类上使用功能接口吗?我如何告诉杰克逊使用该实现?

我希望下面的代码澄清了问题,我选择在Productable这里实现一个接口,但是一个更好的结构来处理这个问题也是受欢迎的.

@JsonPropertyOrder({"type", "someInfo"})
public class InsuredAmount implements Productable, Serializable {

    private static final long serialVersionUID = 1L;

    private IAType type;

    private String someInfo;

    public InsuredAmount() {
    }

    public InsuredAmount(IAType typeA, String someInfo) {
        this.type = typeA;
        this.someInfo = someInfo;
    }


    /* This should be on the product level, but if I can solve this problem,
    the next level will just …
Run Code Online (Sandbox Code Playgroud)

java generics enums json jackson

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

Java Time API将ISO 8601转换为ZonedDateTime

我很难将ISO 8601格式化的字符串转换为UTC 格式的java.time.LocalDateTime.

更具体的,我试图写一个XMLAdapter的,你可以输入各种ISO 8601个dataformats作为字符串(即2002-09-24,2011-03-22T13:30,2015-05-24T12:25:15Z,2015-07-28T11:11:15.321+05:30),并且在输出UTC,反之亦然一个LocalDateTime.

系统以UTC时间内部存储所有日期和时间信息.当用户请求日期或时间时,它将根据自己的ZoneId表示给用户.

java-time

4
推荐指数
2
解决办法
1952
查看次数

读取 XmlTextReader 对象中的“假”xml 文档(xml 片段)

[案例] 我收到了一堆“xml 文件”,其中包含有关大量文档的元数据。至少,这是我所要求的。我收到的“xml 文件”没有根元素,它们的结构如下(我遗漏了一堆元素):

<folder name = "abc"></folder>
<folder name = "abc/def">
<document name = "ghi1">
</document>
<document name = "ghi2">
</document>
</folder>
Run Code Online (Sandbox Code Playgroud)

[问题] 当我尝试读取 XmlTextReader 对象中的文件时,它无法告诉我没有根元素。

[当前解决方法] 当然,我可以将文件作为流读取,附加 < xmlroot> 和 </ xmlroot> 并将流写入新文件并在 XmlTextReader 中读取该文件。这正是我现在正在做的,但我不想“篡改”原始数据。

[请求的解决方案] 我知道我应该使用 XmlTextReader 来实现此目的,并带有 DocumentFragment 选项。但是,这会产生编译时错误:

System.Xml.dll 中发生“System.Xml.XmlException”类型的未处理异常

附加信息:部分内容解析不支持 XmlNodeType DocumentFragment。第 1 行,位置 1。

[错误代码]

using System.Diagnostics;
using System.Xml;

namespace XmlExample
{
    class Program
    {
        static void Main(string[] args)
        {
            string file = @"C:\test.txt";
            XmlTextReader tr = new XmlTextReader(file, XmlNodeType.DocumentFragment, null);
            while(tr.Read())
                Debug.WriteLine("NodeType: …
Run Code Online (Sandbox Code Playgroud)

c# xml xmldocument

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

如何在c#中创建一个以常量作为参数的类?

例如,在XNA框架中有一个SpriteBatchClass.该SpriteBatch.Begin()方法接受如下参数:

spriteBatch.Begin(SpriteSortMode.FrontToBack, BlendState.AlphaBlend);
Run Code Online (Sandbox Code Playgroud)

如何创建一个以相同方式接受参数的类?

.net c# oop

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

Spnego keytab测试提供了java安全性异常

我无法运行以下程序:

import java.net.URL;

import net.sourceforge.spnego.SpnegoHttpURLConnection;

public class HelloKeytab {

    public static void main(final String[] args) throws Exception {
        System.setProperty("java.security.krb5.conf", "krb5.conf");
        System.setProperty("sun.security.krb5.debug", "true");
        System.setProperty("java.security.auth.login.config", "login.conf");

        SpnegoHttpURLConnection spnego = null;

        try {
            spnego = new SpnegoHttpURLConnection("spnego-client");
            spnego.connect(new URL("http://as1.test.local/hello_spnego.jsp"));

            System.out.println("HTTP Status Code: " 
                    + spnego.getResponseCode());

            System.out.println("HTTP Status Message: "
                    + spnego.getResponseMessage());

        } finally {
            if (null != spnego) {
                spnego.disconnect();
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我安装了JDK7并将JAVA_HOME环境变量设置为管理员.我正在编译和运行时作为常规域用户使用Windows XP计算机.

我和我编译的spnego-r7.jar目录相同HelloKeytab.java:

javac -cp .;spnego-r7.jar HelloKeytab.java 
Run Code Online (Sandbox Code Playgroud)

这成功地创造了这个阶级.

当我运行程序时:

java -cp .;spengo-r7.jar HelloKeytab …
Run Code Online (Sandbox Code Playgroud)

java kerberos spnego

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

grep 在文本文件中包含 'xxx' 和上一行的所有行

我想打印包含 xxx 的 tomcat catalina.out 日志中的所有行。使用以下方法完成的简单操作:

cat catalina.out | grep xxx
Run Code Online (Sandbox Code Playgroud)

然而。在日志文件中,我得到包含 xxx 的行,该行上方的行包含记录该项目的日期和时间。我也想看到 grepped 线上方的那些线。我怎么能做到这一点?

grep catalina.out

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

删除 postgres 中没有 pid 的锁

我在 Amazon Web Services RDS 上使用 PostgreSQL 9.6.1

如何解除下面的锁?我原本期望删除 PID,但在本例中它们是空的。

business_data=> CREATE OR REPLACE VIEW public.active_locks AS
business_data->  SELECT t.schemaname,
business_data->     t.relname,
business_data->     l.locktype,
business_data->     l.page,
business_data->     l.virtualtransaction,
business_data->     l.pid,
business_data->     l.mode,
business_data->     l.granted
business_data->    FROM pg_locks l
business_data->    JOIN pg_stat_all_tables t ON l.relation = t.relid
business_data->   WHERE t.schemaname <> 'pg_toast'::name AND t.schemaname <> 'pg_catalog'::name
business_data->   ORDER BY t.schemaname, t.relname;
CREATE VIEW
business_data=> SELECT * FROM active_locks;
 schemaname |               relname                | locktype | page | virtualtransaction | pid |      mode …
Run Code Online (Sandbox Code Playgroud)

postgresql amazon-rds

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

进行空值检查的更短方法

可能之前问过,但找不到。

我写了很多声明的形式:

if (bar.getFoo() != null) {
    this.foo = bar.getFoo();
}
Run Code Online (Sandbox Code Playgroud)

我想到了三元运算符,但在我看来,这并没有让它变得更好:

this.foo = bar.getFoo() != null ? bar.getFoo() : this.foo;
Run Code Online (Sandbox Code Playgroud)

我的主要问题是在这两种情况下我都必须编写 bar.getFoo() 两次。当然我可以写一个辅助方法来解决这个问题,但我想知道是否有更优雅的解决方案。

不同于:避免 != null 语句,因为该问题不涉及将检查为 null 的值分配给值。

java

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