recycleview和banner新闻列表轮播图

news2024/10/5 23:37:54

说明:最近碰到一个需求,弄一个新闻列表和轮播图,在首页显示,并且需要json解析,图片下载,轮播图和新闻列表一起滑动

ui效果图:
在这里插入图片描述

文件说明:
step1:引用依赖包 图片下载 json解析 轮播图 ~app\build.gradle
step2:清单文件,注册联网权限 ~\app\src\main\AndroidManifest.xml
step3:主界面ui布局~\app\src\main\res\layout\activity_main.xml
step4:本地模拟字符串 ~\app\src\main\assets\stu.json
step5:recycleview item的子布局 ~\app\src\main\res\layout\item2.xml
step6:recycleview适配器 ~\app\src\main\java\com\example\iosdialogdemo\LanguageRecycleAdapter2.java
step7:recycleview 控件管理器 ~\app\src\main\java\com\example\iosdialogdemo\LanguageViewHolder2.java
step8: 主界面功能 ~\app\src\main\java\com\example\iosdialogdemo\MainActivity.java
step9:glide图片下载管理类 ~\app\src\main\java\com\example\iosdialogdemo\MyImageLoader.java
step10: json的bean类 ~\app\src\main\java\com\example\iosdialogdemo\StuBean.java

step1:~app\build.gradle

    implementation "com.github.bumptech.glide:glide:4.6.1"
    implementation 'com.google.code.gson:gson:2.8.0'
    implementation 'com.github.bumptech.glide:glide:4.8.0'

step2: ~\app\src\main\AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.iosdialogdemo">

    <uses-permission android:name="android.permission.INTERNET" />
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.IosDialogDemo">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

step3:~\app\src\main\res\layout\activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">


    <com.google.android.material.appbar.AppBarLayout
        android:id="@+id/app_bar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:elevation="0dp">

        <LinearLayout
            android:id="@+id/toolbar_layout"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:layout_scrollFlags="scroll|exitUntilCollapsed">

            <com.youth.banner.Banner
                android:id="@+id/banner"
                android:layout_width="match_parent"
                android:layout_height="200dp"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintTop_toTopOf="parent" />

        </LinearLayout>

    </com.google.android.material.appbar.AppBarLayout>

    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/rvLanguage2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:layout_behavior="@string/appbar_scrolling_view_behavior" />


</androidx.coordinatorlayout.widget.CoordinatorLayout>

step4:~\app\src\main\assets\stu.json

{
  "sch_num": 1085,
  "sch_ready_ed": 2,
  "sch_ready_ing": 6,
  "sch_ready_not": 1079,
  "sch_ready_ing_list": [
    {
      "stu_id": 223,
      "stu_name": "2018-2019学年度第二学期考试和放假时间安排",
      "stu_status": "0",
      "item_status": "2",
      "stu_url": "https://fuss10.elemecdn.com/8/27/f01c15bb73e1ef3793e64e6b7bbccjpeg.jpeg",
      "stu_sex": "女",
      "stu_birth": "1985-04-17",
      "stu_addr": "四川成都",
      "col_id": 3,
      "grade_id": null,
      "col_name": "学院",
      "grade_name": "校级"
    },
    {
      "stu_id": 255,
      "stu_name": "2018-2019学年度第二学期考试和放假时间安排",
      "stu_status": "0",
      "item_status": "2",
      "stu_url": "https://fuss10.elemecdn.com/8/27/f01c15bb73e1ef3793e64e6b7bbccjpeg.jpeg",
      "stu_sex": "男",
      "stu_birth": "1993-01-25",
      "stu_addr": null,
      "col_id": 3,
      "grade_id": null,
      "col_name": "学院",
      "grade_name": "校级"
    },
    {
      "stu_id": 435,
      "stu_name": "2018-2019学年度第二学期考试和放假时间安排",
      "stu_status": "0",
      "item_status": "2",
      "stu_url": "https://fuss10.elemecdn.com/8/27/f01c15bb73e1ef3793e64e6b7bbccjpeg.jpeg",
      "stu_sex": "男",
      "stu_birth": "1988-06-30",
      "stu_addr": null,
      "col_id": 2,
      "grade_id": null,
      "col_name": "学院",
      "grade_name": "校级"
    },
    {
      "stu_id": 572,
      "stu_name": "2018-2019学年度第二学期考试和放假时间安排",
      "stu_status": "0",
      "item_status": "2",
      "stu_url": "https://fuss10.elemecdn.com/8/27/f01c15bb73e1ef3793e64e6b7bbccjpeg.jpeg",
      "stu_sex": "男",
      "stu_birth": "1993-07-19",
      "stu_addr": "陕西咸阳",
      "col_id": 1,
      "grade_id": null,
      "col_name": "学院",
      "grade_name": "校级"
    },
    {
      "stu_id": 954,
      "stu_name": "2018-2019学年度第二学期考试和放假时间安排",
      "stu_status": "0",
      "item_status": "2",
      "stu_url": "https://fuss10.elemecdn.com/8/27/f01c15bb73e1ef3793e64e6b7bbccjpeg.jpeg",
      "stu_sex": "女",
      "stu_birth": "2001-09-20",
      "stu_addr": "新疆喀什",
      "col_id": 5,
      "grade_id": null,
      "col_name": "学院",
      "grade_name": "校级"
    },

    {
      "stu_id": 5035,
      "stu_name": "2018-2019学年度第二学期考试和放假时间安排",
      "stu_status": "0",
      "item_status": "0",
      "stu_url": "https://fuss10.elemecdn.com/8/27/f01c15bb73e1ef3793e64e6b7bbccjpeg.jpeg",
      "stu_sex": "男",
      "stu_birth": "1988-06-30",
      "stu_addr": "福建莆田",
      "col_id": 2,
      "grade_id": null,
      "col_name": "学院",
      "grade_name": "校级"
    }
  ]
}

 

step5:~\app\src\main\res\layout\item2.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="5dp"
    >

    <TextView
        android:id="@+id/tv_news_title"
        android:layout_width="wrap_content"
        android:layout_height="70dp"
        android:layout_marginLeft="15dp"
        android:layout_marginTop="20dp"
        android:layout_alignParentStart="true"
        android:layout_toLeftOf="@+id/iv_news"
        android:text="2018-2019学年度第二学期考试和放假时间安排"
        android:textColor="@android:color/black"
        android:textSize="18sp" />

    <TextView
        android:id="@+id/tv_news_mark"
        android:layout_width="40dp"
        android:layout_height="20dp"
        android:gravity="center"
        android:layout_below="@+id/tv_news_title"
        android:layout_marginLeft="20dp"
        android:layout_marginTop="10dp"
        android:textSize="12sp"
        android:textColor="@color/purple_200"
        android:text="校级" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="20dp"
        android:gravity="center"
        android:layout_below="@+id/tv_news_title"
        android:layout_marginTop="10dp"
        android:layout_toRightOf="@+id/tv_news_mark"
        android:layout_marginLeft="20dp"
        android:text="12-08" />

    <ImageView
        android:id="@+id/iv_news"
        android:layout_width="200dp"
        android:layout_height="100dp"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:layout_marginTop="20dp"
        android:layout_marginRight="15dp"
        android:layout_marginBottom="20dp"
        android:scaleType="fitXY"
        android:src="@mipmap/ic_launcher" />
</RelativeLayout>

step6:~\app\src\main\java\com\example\iosdialogdemo\LanguageRecycleAdapter2.java

package com.example.iosdialogdemo;


import com.bumptech.glide.Glide;
import com.example.iosdialogdemo.R;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;

import java.util.List;

public class LanguageRecycleAdapter2 extends RecyclerView.Adapter<LanguageViewHolder2> {
    private List<StuBean.SchReadyIngListBean> stuList;
    private Context context;

    public LanguageRecycleAdapter2(Context context, List<StuBean.SchReadyIngListBean> stuList) {
        this.stuList = stuList;
        this.context = context;
    }

    public void setData(List<StuBean.SchReadyIngListBean> stuList) {
        this.stuList = stuList;
    }

    @NonNull
    @Override
    public LanguageViewHolder2 onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        LanguageViewHolder2 holder;
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item2, parent, false);
        holder = new LanguageViewHolder2(view);
        return holder;

    }

    @Override
    public void onBindViewHolder(@NonNull LanguageViewHolder2 holder, final int position) {
        holder.tv_stu_name.setText(stuList.get(position).getStu_name());
        holder.tv_stu_cls.setText(stuList.get(position).getGrade_name());
        Glide.with(context).load(stuList.get(position).getStu_url()).into(holder.iv_img);
    }

    @Override
    public int getItemCount() {
        return stuList.size();
    }

}

step7:~\app\src\main\java\com\example\iosdialogdemo\LanguageViewHolder2.java

package com.example.iosdialogdemo;

import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;

import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;

import com.example.iosdialogdemo.R;


public class LanguageViewHolder2 extends RecyclerView.ViewHolder {
    public TextView tv_stu_name, tv_stu_cls;
    public ImageView iv_img;
    public LanguageViewHolder2(@NonNull View itemView) {
        super(itemView);
        tv_stu_name = itemView.findViewById(R.id.tv_news_title);
        tv_stu_cls = itemView.findViewById(R.id.tv_news_mark);
        iv_img = itemView.findViewById(R.id.iv_news);
    }
}

step8: ~\app\src\main\java\com\example\iosdialogdemo\MainActivity.java

package com.example.iosdialogdemo;



        import android.os.Bundle;
        import android.os.Handler;
        import android.os.Message;
        import android.util.Log;

        import com.google.gson.Gson;
        import com.youth.banner.Banner;
        import com.youth.banner.BannerConfig;
        import com.youth.banner.Transformer;

        import java.io.IOException;
        import java.io.InputStream;
        import java.util.ArrayList;
        import java.util.List;

        import androidx.annotation.NonNull;
        import androidx.appcompat.app.AppCompatActivity;
        import androidx.recyclerview.widget.LinearLayoutManager;
        import androidx.recyclerview.widget.RecyclerView;

public class MainActivity extends AppCompatActivity {
    //界面控件
    private Banner mbanner;
    //轮播图的数据
    private MyImageLoader myImageLoader;
    private ArrayList<Integer> photos;


    /*新闻列表*/
    private List<StuBean.SchReadyIngListBean> stuList;



    private RecyclerView rvLanguage2 ;
    private String jsonString;
    private LanguageRecycleAdapter2 languageRecycleAdapter2;


    private Handler mHandler = new Handler(new Handler.Callback() {
        @Override
        public boolean handleMessage(@NonNull Message message) {
            if (message.what == 100) {
                jsonString = (String) message.obj;
                Log.e("INFO", "##### Sub: " + ": " + jsonString);
                Gson gson = new Gson();
                //解析字符串
                StuBean mStuBean = gson.fromJson(jsonString, StuBean.class);
                if (stuList != null) {
                    stuList.clear();
                }
                stuList.addAll(mStuBean.getSch_ready_ing_list());
                Log.e("INFO", "##### Sub: " + ": " + stuList);
                languageRecycleAdapter2.setData(stuList);
                languageRecycleAdapter2.notifyDataSetChanged();

            }
            return false;
        }
    });





    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initData();
        initView();
    }

    //界面初始化
    private void initView() {
        mbanner = (Banner) findViewById(R.id.banner);
        //设置轮播的样式
        mbanner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR);  //CIRCLE_INDICATOR
        //设置图片加载器
        mbanner.setImageLoader(myImageLoader);
        //设置轮播的动画效果,里面有很多种特效,可以都看看效果。
        mbanner.setBannerAnimation(Transformer.ZoomOutSlide);
        //设置轮播间隔时间
        mbanner.setDelayTime(3000);
        //设置是否为自动轮播,默认是true
        mbanner.isAutoPlay(true);
        //设置指示器的位置,小点点,居中显示
        mbanner.setIndicatorGravity(BannerConfig.CENTER);
        //设置图片加载地址
        mbanner.setImages(photos)
                //开始调用的方法,启动轮播图。
                .start();


        rvLanguage2 = findViewById(R.id.rvLanguage2);
        stuList = new ArrayList<>();

        rvLanguage2.setLayoutManager(new LinearLayoutManager(MainActivity.this));
        languageRecycleAdapter2 = new LanguageRecycleAdapter2(MainActivity.this, stuList);
        rvLanguage2.setAdapter(languageRecycleAdapter2);

        loadJsonFromAssests();

    }

    //数据初始化
    private void initData() {
        myImageLoader = new MyImageLoader();
        //将轮播的图片放在photos 那里
        photos = new ArrayList<Integer>();
        photos.add(R.mipmap.ic_launcher);
        photos.add(R.mipmap.ic_launcher);
        photos.add(R.mipmap.ic_launcher);
        photos.add(R.mipmap.ic_launcher);
        photos.add(R.mipmap.ic_launcher);
        photos.add(R.mipmap.ic_launcher);

    }


    public void loadJsonFromAssests() {
        String json = null;
        try {
            InputStream inputStream = getAssets().open("stu.json");
            int size = inputStream.available();
            byte[] buffer = new byte[size];
            inputStream.read(buffer);
            inputStream.close();
            json = new String(buffer, "UTF-8");
        } catch (IOException ex) {
            ex.printStackTrace();
        }
        Log.e("TAG", "loadJsonFromAssests:" + json.toString());
        Message msg = new Message();
        msg.what = 100;
        msg.obj = json.toString();
        mHandler.sendMessage(msg);
    }



}

step9:~\app\src\main\java\com\example\iosdialogdemo\MyImageLoader.java

package com.example.iosdialogdemo;





        import android.content.Context;
        import android.widget.ImageView;

        import com.bumptech.glide.Glide;
        import com.youth.banner.loader.ImageLoader;

public class MyImageLoader extends ImageLoader {
    @Override
    public void displayImage(Context context, Object path, ImageView imageView) {
        Glide.with(context.getApplicationContext())
                .load(path)
                .into(imageView);
    }
}

step10:~\app\src\main\java\com\example\iosdialogdemo\StuBean.java

package com.example.iosdialogdemo;






import java.util.List;

public class StuBean {

    

    private int sch_num;
    private int sch_ready_ed;
    private int sch_ready_ing;
    private int sch_ready_not;
    private List<SchReadyIngListBean> sch_ready_ing_list;

    public int getSch_num() {
        return sch_num;
    }

    public void setSch_num(int sch_num) {
        this.sch_num = sch_num;
    }

    public int getSch_ready_ed() {
        return sch_ready_ed;
    }

    public void setSch_ready_ed(int sch_ready_ed) {
        this.sch_ready_ed = sch_ready_ed;
    }

    public int getSch_ready_ing() {
        return sch_ready_ing;
    }

    public void setSch_ready_ing(int sch_ready_ing) {
        this.sch_ready_ing = sch_ready_ing;
    }

    public int getSch_ready_not() {
        return sch_ready_not;
    }

    public void setSch_ready_not(int sch_ready_not) {
        this.sch_ready_not = sch_ready_not;
    }

    public List<SchReadyIngListBean> getSch_ready_ing_list() {
        return sch_ready_ing_list;
    }

    public void setSch_ready_ing_list(List<SchReadyIngListBean> sch_ready_ing_list) {
        this.sch_ready_ing_list = sch_ready_ing_list;
    }


    public static class SchReadyIngListBean {
     

        private int stu_id;
        private String stu_name;
        private String stu_status;
        private String item_status;
        private String stu_url;
        private String stu_sex;
        private String stu_birth;
        private String stu_addr;
        private int col_id;
        private Object grade_id;
        private String col_name;
        private String grade_name;

        public int getStu_id() {
            return stu_id;
        }

        public void setStu_id(int stu_id) {
            this.stu_id = stu_id;
        }

        public String getStu_name() {
            return stu_name;
        }

        public void setStu_name(String stu_name) {
            this.stu_name = stu_name;
        }

        public String getStu_status() {
            return stu_status;
        }

        public void setStu_status(String stu_status) {
            this.stu_status = stu_status;
        }

        public String getItem_status() {
            return item_status;
        }

        public void setItem_status(String item_status) {
            this.item_status = item_status;
        }

        public String getStu_url() {
            return stu_url;
        }

        public void setStu_url(String stu_url) {
            this.stu_url = stu_url;
        }

        public String getStu_sex() {
            return stu_sex;
        }

        public void setStu_sex(String stu_sex) {
            this.stu_sex = stu_sex;
        }

        public String getStu_birth() {
            return stu_birth;
        }

        public void setStu_birth(String stu_birth) {
            this.stu_birth = stu_birth;
        }

        public String getStu_addr() {
            return stu_addr;
        }

        public void setStu_addr(String stu_addr) {
            this.stu_addr = stu_addr;
        }

        public int getCol_id() {
            return col_id;
        }

        public void setCol_id(int col_id) {
            this.col_id = col_id;
        }

        public Object getGrade_id() {
            return grade_id;
        }

        public void setGrade_id(Object grade_id) {
            this.grade_id = grade_id;
        }

        public String getCol_name() {
            return col_name;
        }

        public void setCol_name(String col_name) {
            this.col_name = col_name;
        }

        public String getGrade_name() {
            return grade_name;
        }

        public void setGrade_name(String grade_name) {
            this.grade_name = grade_name;
        }
    }


}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1659824.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

揭秘金融行业:资本的流转与价值的创造

金融行业&#xff0c;这个庞大而复杂的经济体系&#xff0c;如同现代社会的血脉&#xff0c;支撑着全球经济的运行与繁荣。它不仅关乎金钱的流通&#xff0c;更是涵盖了资金的管理、分配、增值、保护以及一系列与之相关的专业服务。今天&#xff0c;就让我们一起深入探索这个充…

护士节有趣味h5互动小游戏的作用是什么

护士节能够开展的营销活动种类也比较多&#xff0c;但无论如何都应该契合品牌元素和实现目标目的&#xff0c;基于微信平台的趣味玩法在参与和分享/效果方面都有利处。 在【雨科】平台有多款护士节趣味活动玩法&#xff0c;轻松设置快速开始&#xff0c;品牌宣传、渠道涨粉引流…

【数据库原理及应用】期末复习汇总高校期末真题试卷05

试卷 一、选择题 1.( )是存储在计算机内有结构的数据的集合。 A.数据库系统 B.数据库 C.数据库管理系统 D.数据结构 2.数据库的三级模式结构中&#xff0c;数据库对象—视图是( ) A.外模式 B.内模式 C.存储模式 D.模式 3.在下列关于关系表的陈述中&#xff0c;错误的是(…

批量无人值守设备运维如何轻松搞定,设备授权和分组很关键

如今数字化时代&#xff0c;很多企业的一线业务依托无人值守的智能终端设备展开&#xff0c;这类设备的广泛使用可以帮助企业以较小的成本铺开大规模的业务&#xff0c;比如现在随处可见的智能售货机&#xff0c;商场的各类智能互动终端等等。 这类设备整体上可以降低业务开展…

淘宝电商商家ERP订单接口接入指南:对接ERP与淘宝系统的数据桥梁

最近几年&#xff0c;电商发展如火如荼&#xff0c;一方面互联网企业在推互联网 和O2O&#xff0c;同时很多传统企业也在积极互联网&#xff0c;通过各种电商平台拓展销售渠道&#xff0c;有些还同时建有自建的电商平台。这些电商平台通常下单&#xff0c;结算&#xff0c;促销…

(三十七)第 6 章 树和二叉树(二叉树的二叉链表存储)

1. 背景说明 2. 示例代码 1) errorRecord.h // 记录错误宏定义头文件#ifndef ERROR_RECORD_H #define ERROR_RECORD_H#include <stdio.h> #include <string.h> #include <stdint.h>// 从文件路径中提取文件名 #define FILE_NAME(X) strrchr(X, \\) ? st…

ES之道:IK分词器的魔法般变身

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 ES之道&#xff1a;IK分词器的魔法般变身 前言IK分词器简介IK分词器原理创建索引和配置IK分词器实战(docker搭建的Es)下载ik插件创建一个ik分词器的索引如果希望将原来的索引覆盖重新索引数据删除旧索…

Eclipse下载安装教程(包含JDK安装)【保姆级教学】【2023.10月最新版】

目录 文章最后附下载链接 第一步&#xff1a;下载Eclipse&#xff0c;并安装 第二步&#xff1a;下载JDK&#xff0c;并安装 第三步&#xff1a;Java运行环境配置 安装Eclipse必须同时安装JDK &#xff01;&#xff01;&#xff01; 文章最后附下载链接 第一步&#xf…

C++——string的使用

string的使用 1. STL2. string2.1 初始化和遍历2.2 容量相关2.3 串的修改2.4 其他接口 1. STL STL全称 standard template libaray——标准模板库&#xff0c;内部包含了很多数据结构和算法&#xff0c;数据结构包括栈&#xff0c;队列&#xff0c;树&#xff0c;链表等&#…

[JAVASE] 类和对象(一)

目录 一.类的基本定义 1.1 类与对象 1.2 类的定义 二. 类的实例化 2.1 创建引用 三. 类中成员的访问 3.1 基本实现 3.2 this引用 四. 构造与初始化 4.1 初始化 4.2 构造方法 五. 总结 一.类的基本定义 1.1 类与对象 类对应着对象 1.2 类的定义 二. 类的实例化 2.1 创建引用…

Go-Zero自定义goctl实战:定制化模板,加速你的微服务开发效率(四)

前言 上一篇文章带你实现了Go-Zero和goctl&#xff1a;解锁微服务开发的神器&#xff0c;快速上手指南&#xff0c;本文将继续深入探讨Go-Zero的强大之处&#xff0c;并介绍如何使用goctl工具实现模板定制化&#xff0c;并根据实际项目业务需求进行模板定制化实现。 通过本文…

爬虫学习--1.前导知识

初始爬虫 前言引入 随着大数据时代的来临&#xff0c;网络爬虫在互联网中的地位将越来越重要。互联网中的数据是海量的&#xff0c;如何自动高效地获取互联网中我们感兴趣的信息并为我们所用是一个重要的问题&#xff0c;而爬虫技术就是为了解决这些问题而生的。 我们感兴趣的…

java学习笔记反射机制

2.关于反射的理解 Reflection&#xff08;反射)是被视为动态语言的关键&#xff0c;反射机制允许程序在执行期借助于Reflection API取得任何 类的内部信息&#xff0c;并能直接操作任意对象的内部属性及方法。 框架 反射 注解 设计模式。 3.体会反射机制的“动态性” //…

Mybatis之ResultMap

前言 select语句查询得到的结果集是一张二维表&#xff0c;水平方向上看是一个个字段&#xff0c;垂直方向上看是一条条记录。而Java是面向对象的程序设计语言&#xff0c;对象是根据类定义创建的&#xff0c;类之间的引用关 系可以认为是嵌套的结构。在JDBC编程中&#xff0c…

政务服务电子文件归档和电子档案管理系统,帮助组织收、管、存、用一体化

作为数字政府建设的重要抓手&#xff0c;政务服务改革经过多年发展&#xff0c;截至 2022 年底&#xff0c;全国一体化在线政务服务平台实名用户超过10亿人&#xff0c;在政务服务、办件过程中出现了大量需要归档的电子文件&#xff0c;对于电子档案、电子证照的需求愈加强烈。…

Sql Server 2016数据库定时备份

一、 配置备份计划任务 选中“维护计划“--右键--“维护计划向导” 完成

2024 年 数维杯(C题)大学生数学建模挑战赛 | 天然气水合物资源 | 数学建模完整代码+建模过程全解全析

当大家面临着复杂的数学建模问题时&#xff0c;你是否曾经感到茫然无措&#xff1f;作为2022年美国大学生数学建模比赛的O奖得主&#xff0c;我为大家提供了一套优秀的解题思路&#xff0c;让你轻松应对各种难题。 CS团队倾注了大量时间和心血&#xff0c;深入挖掘解决方案。通…

1.python爬虫爬取视频网站的视频可下载的源url

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、爬取的源网站二、爬取过程详解1.首先我们需要解析网站的源码&#xff0c;按F12&#xff0c;在Elements下查看网站的源码2.获取视频的页数3.获取每一页所哟视频的…

基于FPGA实现的HDMI TO MIPI扩展显示器方案

FPGA方案&#xff0c;HDMI IN接收原始HDMI 信号&#xff0c;输出显示到LCD 屏上 客户应用&#xff1a;扩展显示器 主要特性&#xff1a; 1.支持2K以下任意分辨率显示 2.支持OSD 叠加多个图层 3.支持MIPI/EDP/LVDS/RGB屏 4.支持放大缩小匹配屏分辨率 5.零延时&#xff0c;输…

从零学算法42

42.接雨水 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 示例 1&#xff1a; 输入&#xff1a;height [0,1,0,2,1,0,1,3,2,1,2,1] 输出&#xff1a;6 解释&#xff1a;上面是由数组 [0,1,0,2,1,0,1,3…