小编tra*_*ank的帖子

JPA java代码生成

我特意寻找JPA代码生成技术

首先,所有项目都可以生成符合JPA标准的代码?(例如.HibernateTools)

其次,我还想自定义代码生成实用程序,因为它必须符合我们的企业标准.

如果没有,那么使用反射生成java代码的所有框架是什么?所以我可以从头开始写.

注意:我使用eclipse生成JPA代码并重复重构以使其符合规范.

java templates code-generation jpa autocomplete

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

需要帮助了解\n,\ b和\ r \n将如何呈现printf输出

我在C中编写了以下程序,当我运行它时,我惊讶于查看输出.

这是程序

int main()
{    
       printf("\nab");
       printf("\bsi");    
       printf("\rha");    
}
Run Code Online (Sandbox Code Playgroud)

输出是: - hai而我期待"absiha",因为\n是新行,\ b是退格(非擦除),\ r是回车.所以我期待那个光标会处于"i"角色,因为\ r已经被应用但是当我运行它并看到输出时我感到非常惊讶和困惑.有人可以解释一下输出吗?

c language-lawyer

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

Java Reflection Snippet输出

我只是在探索java反射API,我遇到了以下代码片段

public class Main {
    public static void main(String[] args) throws IllegalAccessException, NoSuchFieldException{
            Field value=Integer.class.getDeclaredField("value");
            value.setAccessible(true);
            value.set(42, 43);

            System.out.printf("six times seven %d%n",6*7);
            System.out.printf("six times seven %d%n",42);
            System.out.println(42);
        }
    }
Run Code Online (Sandbox Code Playgroud)

输出:

six times seven 43
six times seven 43
42
Run Code Online (Sandbox Code Playgroud)

我阅读了set方法的文档,该方法声明它为给定对象设置字段的值.但我无法理解代码的输出,因为它应该在所有情况下打印42.

任何人都可以深入了解代码中发生的事情吗?

java reflection

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

左值需要错误

在使用指针时,我编写了以下代码,

int main()
{
    int a[]={10,20,30,40,50};
    int i;
    for(i=0;i<5;i++)
    {
        printf("\n%d",*a);
        a++;
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

现在根据我的理解,数组名称本身是c中的地址,根据我的知识,完成的指针算法是正确的.但是,当我尝试运行代码时,它给了我"Lvalue Required"错误.

那么出现Lvalue所需错误的确切原因是什么呢?因为在此之前我也遇到过这种错误的情况.其次,为什么指针的算术在这种情况下不合法呢?

c pointers

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

通过具有双向身份验证的Gmail帐户中的java发送电子邮件

我想创建一个可以向任何指定收件人(gmail)发送电子邮件的功能.我遇到的问题是当我尝试提供在gmail中使用双向身份验证的凭据时,我的身份验证失败.帐户没有双向身份验证,它工作正常.那么我必须做些什么来启用双向身份验证?

以下是我用来发送电子邮件的代码.

public static boolean sendMail(String fromMail, String fromPassword, String toMail, String message) {
        try {
            final String user = fromMail, password = fromPassword;
            Properties prop = new Properties();
            prop.setProperty("mail.smtp.host", "smtp.gmail.com");
            prop.setProperty("mail.smtp.port", "465");
            prop.setProperty("mail.smtp.auth", "true");
            prop.setProperty("mail.smtp.ssl.enable", "true");
//            prop.put("mail.debug", "true");

//            prop.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");

            Session sess = Session.getDefaultInstance(prop, new Authenticator() {

                @Override
                protected javax.mail.PasswordAuthentication getPasswordAuthentication() {
                    return new javax.mail.PasswordAuthentication(user, password);
                }
            });

//            Session sess=Session.getDefaultInstance(prop);

            sess.setDebug(true);

            Message msg = new MimeMessage(sess);

            msg.setFrom(new InternetAddress(fromMail));
            msg.setRecipient(Message.RecipientType.TO, new InternetAddress(toMail));
            msg.setText(message);
            msg.setContent(message, "text/html");


            Transport.send(msg);
            return …
Run Code Online (Sandbox Code Playgroud)

java gmail jakarta-mail

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

java enum混乱

我遇到了以下java代码.这里接口包含两个方法,其中只有一个方法在枚举中实现.它是name()自动实现的.我的问题是它怎么可能?我之前没有读过关于枚举中自动方法实现的任何规则.那么这里发生了什么?此外,代码没有给出任何类型的编译时错误.

interface Named {
    public String name();
    public int order();
}

enum Planets implements Named {
    Mercury, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Neptune;
    // name() is implemented automagically.
    public int order() { return ordinal()+1; }
}
Run Code Online (Sandbox Code Playgroud)

java enums interface

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

在java中访问dll方法

我正在尝试访问用c#编写的java中的dll方法.从以下代码我试图构建成功生成的DLL.

using System;
using Microsoft.Win32;


namespace CyberoamWinHelper
{
    public class RegistryAccess
    {        
        public static String getValue(String key)
        {
            RegistryKey rk = Registry.CurrentUser;
            RegistryKey rk1=rk.OpenSubKey("Software\\Test", RegistryKeyPermissionCheck.ReadWriteSubTree, System.Security.AccessControl.RegistryRights.FullControl);
            rk1.SetValue(key, "val1");
            return rk1.GetValue(key).ToString();
        }
        public static void createSubkey(String name)
        {
            RegistryKey rk = Registry.CurrentUser;
            rk.CreateSubKey("Software\\Test");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在此之后我在我的java程序代码中加载生成的dll,如下所示

public class JNI {

    /**
     * @param args the command line arguments
     */
    public native String getValue(String key);    

    public static void main(String[] args) {
        // TODO code application logic here

        try
        {
            System.loadLibrary("CyberoamWinHelper");
            JNI …
Run Code Online (Sandbox Code Playgroud)

java dll java-native-interface

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

在C++代码之后理解问题.(seekp)

#include<stdio.h>
#include<fstream.h>
class Test
{
    char name[10];
    int data;
    public:
        void getData()
        {
            cin>>name;
            cin>>data;
        }
        void display()
        {
            cout<<name<<data;
        }
        void modify()
        {
            cin>>name;
            cin>>data;
        }
};
int main()
{
    Test t1,t2,t3,t4;
//  remove("FileIO.dat");
    t1.getData();
    t2.getData();
    t3.getData();
    t4.getData();
    fstream fp1("FileIO.dat",ios::out|ios::app);
    fp1.write((char*)&t1,sizeof(t1));
    fp1.write((char*)&t2,sizeof(t2));
    fp1.write((char*)&t3,sizeof(t3));
    fp1.write((char*)&t4,sizeof(t4));
    fp1.close();
    fstream fp2("FileIO.dat",ios::in|ios::out);
    fp2.read((char*)&t1,sizeof(t1));
    fp2.read((char*)&t2,sizeof(t2));
    int pos=-1*sizeof(t2); // ****** not understanding this line
    cout<<pos;
    fp2.seekp(pos,ios::cur);
    t2.modify();
    fp2.write((char*)&t2,sizeof(t2));
    fp2.read((char*)&t3,sizeof(t3));
    fp2.read((char*)&t4,sizeof(t4));
    t1.display();
    t2.display();
    t3.display();
    t4.display();
    fp2.close();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

该程序是用turbo C++编写的,它处理将对象写入文件并将其读回以及更新已写入文件的对象.

在上面的代码中,我不明白为什么-1乘以sizeof对象来获取位置.有人请解释一下.

c++ file-handling

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

如何禁用swt表中的水平滚动条?

要禁用垂直滚动条,我使用以下语法

table.getHorizontalBar().setEnabled(false);
Run Code Online (Sandbox Code Playgroud)

但它没有用.这毁了我的申请ui.我怎么能禁用它?

java swt

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