会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 133795个问题
Python 全系列/第一阶段:AI驱动的Python编程/编程基本概念 15241楼

public class TestShowMsg {

    public static void main(String[] args) {

        ShowMsg sm = new ShowMsg();
        Generic3<Integer> g = new Generic3<>();
        sm.showFlag(g); // null 这里null 是因为这时候Generic3的对象没有任何值为空
        g.setFlag(20); // 为Generic3中的flag赋值20
        sm.showFlag(g); // 20 将Generic3对象g传入
       /*
        Generic3<Number> g2 = new Generic3<>();
        sm.showFlag(g2);
        g.getFlag(50);
        sm.showFlag(g);
        这里都报错的原因是泛型只确定了你要使用的类型或者类型识别,不考虑继承关系,只看类型!!
*/

        System.out.println("=============================================");
        Generic3<Integer> g2 = new Generic3<>();
        sm.showFlag(g2); 
        g2.setFlag(30); 
        sm.showFlag(g2); 
        Generic3<Number> g3 = new Generic3<>();
        sm.showFlag2(g3); // 因为showFlag2(Generic3<?> generic3)的参数泛型是? 任意类型 所以这里不会报错
        g3.setFlag(50);
        sm.showFlag2(g3);


    }
}
class ShowMsg{
    public void showFlag(Generic3<Integer> generic3){  // 这里传入的参数是Generic3对象 泛型类型定义为Integer
        System.out.println(generic3.getFlag());
    }

    // ? 无界通配符
    public void showFlag2(Generic3<?> generic3){  // 不能确定传入的是什么类型时 泛型类型定义为? 任意类型都可以
        System.out.println(generic3.getFlag());
    }
}

class Generic3<T>{
    private T flag;

    public T getFlag() {
        return flag;
    }

    public void setFlag(T flag) {
        this.flag = flag;
    }
}

老师,我这样理解对吗?

然后还有两个问题:

1、为什么传入参数Generic3<T> generic会报错?  我创建的泛型类是Generic3<T>,T不是表示简单的JAVA类么,

为什么传参时不可以使用?

public void showFlag(Generic3<T> generic3){  
    System.out.println(generic3.getFlag());
}

2、T是简单JAVA类 ?是任意类型 那这里用?作为传入参数的泛型,会不会出现超出T表示的范围?

public void showFlag2(Generic3<?> generic3){  
        System.out.println(generic3.getFlag());
    }


JAVA 全系列/第二阶段:JAVA 基础深化和提高/容器(旧) 15242楼
JAVA 全系列/第一阶段:AI驱动的JAVA编程/JAVA入门和背景知识 15243楼
JAVA 全系列/第二十一阶段:租房网(Spring Cloud最新架构)/Livegoods第一天 15244楼

老师 请问我一运行就提示Sat Jul 10 19:43:21 CST 2021 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.是什么情况

WARN:不建议在没有服务器身份验证的情况下建立SSL连接。 MySQL 5.5.45+、5.6.26+和5.7.6+要求如果没有设置显式选项,则默认需要建立SSL连接。 为了符合未使用SSL的现有应用程序,verifyServerCertificate属性被设置为“false”。 您需要通过设置useSSL=false显式禁用SSL,或者设置useSSL=true并为服务器证书验证提供信任库。  

package jdbcdemo;


import java.lang.instrument.ClassFileTransformer;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.SQLException;

import java.sql.Statement;


public class JDBCtest {

//向department表中添加一条数据

public void insertDepartments(String dep_name,int location_id) {

Connection conn=null;

Statement statement=null;

//驱动注册

try {

Class.forName("com.mysql.jdbc.Driver");

//创建连接

conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/bjsxt?useUnicode=true&characterEncoding=utf-8", "root", "qwe555123");

String sql="insert into dep values(default,'"+dep_name+"',"+location_id+")";

statement=conn.createStatement();

int flag=statement.executeUpdate(sql);

System.out.println(flag);

} catch (Exception e) {

// TODO: handle exception

}

finally {

if (statement!=null) {

try {

statement.cancel();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

if (conn!=null) {

try {

conn.close();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

}

}

public static void main(String[] args) {

// TODO Auto-generated method stub

JDBCtest text=new JDBCtest();

text.insertDepartments("研发部", 8);

}


JAVA 全系列/第四阶段:数据库与AI协同技术实战/JDBC技术(旧) 15245楼
Python 全系列/第一阶段:AI驱动的Python编程/面向对象 15247楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/容器 15248楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/IO流技术 15249楼
JAVA 全系列/(旧的隐藏)第二十一阶段:百战商城项目(Spring Cloud最新架构)/百战商城项目 15250楼
JAVA 全系列/第一阶段:AI驱动的JAVA编程/面向对象详解和JVM底层内存分析 15251楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637