MetaObject 提供了对象的属性值的获取与设置等方法,是对BaseWrapper操作的进一步增强

public class MetaObject {//原始的java对象private final Object originalObject;//对对象的包装,抽象了对象的属性信息,他定义了一系列查询对象属性信息的方法,以及更新属性的方法;private final ObjectWrapper objectWrapper;private final ObjectFactory objectFactory;private final ObjectWrapperFactory objectWrapperFactory;private final ReflectorFactory reflectorFactory;private MetaObject(Object object, ObjectFactory objectFactory, ObjectWrapperFactory objectWrapperFactory, ReflectorFactory reflectorFactory) {this.originalObject = object;this.objectFactory = objectFactory;this.objectWrapperFactory = objectWrapperFactory;this.reflectorFactory = reflectorFactory;
//会根据object类型的不同创造相应的ObjectWrapper对象if (object instanceof ObjectWrapper) {this.objectWrapper = (ObjectWrapper) object;} else if (objectWrapperFactory.hasWrapperFor(object)) {this.objectWrapper = objectWrapperFactory.getWrapperFor(this, object);} else if (object instanceof Map) {this.objectWrapper = new MapWrapper(this, (Map) object);} else if (object instanceof Collection) {this.objectWrapper = new CollectionWrapper(this, (Collection) object);} else {this.objectWrapper = new BeanWrapper(this, object);}}
//静态方法,创造MetaObject对象public static MetaObject forObject(Object object, ObjectFactory objectFactory, ObjectWrapperFactory objectWrapperFactory, ReflectorFactory reflectorFactory) {if (object == null) {return SystemMetaObject.NULL_META_OBJECT;} else {return new MetaObject(object, objectFactory, objectWrapperFactory, reflectorFactory);}}public ObjectFactory getObjectFactory() {return objectFactory;}public ObjectWrapperFactory getObjectWrapperFactory() {return objectWrapperFactory;}public ReflectorFactory getReflectorFactory() {return reflectorFactory;}public Object getOriginalObject() {return originalObject;}public String findProperty(String propName, boolean useCamelCaseMapping) {return objectWrapper.findProperty(propName, useCamelCaseMapping);}public String[] getGetterNames() {return objectWrapper.getGetterNames();}public String[] getSetterNames() {return objectWrapper.getSetterNames();}public Class<?> getSetterType(String name) {return objectWrapper.getSetterType(name);}public Class<?> getGetterType(String name) {return objectWrapper.getGetterType(name);}public boolean hasSetter(String name) {return objectWrapper.hasSetter(name);}public boolean hasGetter(String name) {return objectWrapper.hasGetter(name);}
//获得指定属性的值public Object getValue(String name) {PropertyTokenizer prop = new PropertyTokenizer(name);if (prop.hasNext()) {MetaObject metaValue = metaObjectForProperty(prop.getIndexedName());if (metaValue == SystemMetaObject.NULL_META_OBJECT) {return null;} else {return metaValue.getValue(prop.getChildren());}} else {return objectWrapper.get(prop);}}
//设置对应属性的值public void setValue(String name, Object value) {PropertyTokenizer prop = new PropertyTokenizer(name);if (prop.hasNext()) {MetaObject metaValue = metaObjectForProperty(prop.getIndexedName());if (metaValue == SystemMetaObject.NULL_META_OBJECT) {if (value == null && prop.getChildren() != null) {// don't instantiate child path if value is nullreturn;} else {metaValue = objectWrapper.instantiatePropertyValue(name, prop, objectFactory);}}metaValue.setValue(prop.getChildren(), value);} else {objectWrapper.set(prop, value);}}
//创建指定属性的MetaObject对象public MetaObject metaObjectForProperty(String name) {Object value = getValue(name);return MetaObject.forObject(value, objectFactory, objectWrapperFactory, reflectorFactory);}public ObjectWrapper getObjectWrapper() {return objectWrapper;}public boolean isCollection() {return objectWrapper.isCollection();}public void add(Object element) {objectWrapper.add(element);}public <E> void addAll(List<E> list) {objectWrapper.addAll(list);}}

SystemMetaObject 系统级的MetaObject对象,主要提供了 ObjectFactory、ObjectWrapperFactory、空 MetaObject 的单例

public final class SystemMetaObject {public static final ObjectFactory DEFAULT_OBJECT_FACTORY = new DefaultObjectFactory();public static final ObjectWrapperFactory DEFAULT_OBJECT_WRAPPER_FACTORY = new DefaultObjectWrapperFactory();public static final MetaObject NULL_META_OBJECT = MetaObject.forObject(NullObject.class, DEFAULT_OBJECT_FACTORY, DEFAULT_OBJECT_WRAPPER_FACTORY, new DefaultReflectorFactory());private SystemMetaObject() {// Prevent Instantiation of Static Class}private static class NullObject {}
//创建指定对象的MetaObject对象public static MetaObject forObject(Object object) {return MetaObject.forObject(object, DEFAULT_OBJECT_FACTORY, DEFAULT_OBJECT_WRAPPER_FACTORY, new DefaultReflectorFactory());}}

ParamNameUtil 参数名工具类,获得构造方法和普通方法的参数列表

public class ParamNameUtil {public static List<String> getParamNames(Method method) {return getParameterNames(method);}public static List<String> getParamNames(Constructor<?> constructor) {return getParameterNames(constructor);}private static List<String> getParameterNames(Executable executable) {final List<String> names = new ArrayList<>();final Parameter[] params = executable.getParameters();//获得参数名,并添加到names中for (Parameter param : params) {names.add(param.getName());}return names;}private ParamNameUtil() {super();}
}

ParamNameResolver 参数名解析器

public class ParamNameResolver {private static final String GENERIC_NAME_PREFIX = "param";//参数名映射,参数顺序:参数名private final SortedMap<Integer, String> names;
//是否有注解的参数private boolean hasParamAnnotation;public ParamNameResolver(Configuration config, Method method) {//得到参数的类型数组final Class<?>[] paramTypes = method.getParameterTypes();//得到参数的注解数组final Annotation[][] paramAnnotations = method.getParameterAnnotations();final SortedMap<Integer, String> map = new TreeMap<>();int paramCount = paramAnnotations.length;// get names from @Param annotationsfor (int paramIndex = 0; paramIndex < paramCount; paramIndex++) {//如果是特殊参数就忽略if (isSpecialParameter(paramTypes[paramIndex])) {// skip special parameterscontinue;}String name = null;for (Annotation annotation : paramAnnotations[paramIndex]) {if (annotation instanceof Param) {hasParamAnnotation = true;name = ((Param) annotation).value();break;}}if (name == null) {// @Param was not specified.//获取真实的参数名if (config.isUseActualParamName()) {name = getActualParamName(method, paramIndex);}if (name == null) {// use the parameter index as the name ("0", "1", ...)// gcode issue #71//实在没有就用map的顺序name = String.valueOf(map.size());}}map.put(paramIndex, name);}names = Collections.unmodifiableSortedMap(map);}
//得到真实参数名称private String getActualParamName(Method method, int paramIndex) {if (Jdk.parameterExists) {return ParamNameUtil.getParamNames(method).get(paramIndex);}return null;}
//如果是RowBounds以及ResultHandler的子类则为特殊参数private static boolean isSpecialParameter(Class<?> clazz) {return RowBounds.class.isAssignableFrom(clazz) || ResultHandler.class.isAssignableFrom(clazz);}public String[] getNames() {return names.values().toArray(new String[0]);}//获得参数名与值的映射public Object getNamedParams(Object[] args) {final int paramCount = names.size();if (args == null || paramCount == 0) {return null;} else if (!hasParamAnnotation && paramCount == 1) {return args[names.firstKey()];} else {// 组合 1 :KEY:参数名,VALUE:参数值// 组合 2 :KEY:GENERIC_NAME_PREFIX + 参数顺序,VALUE :参数值final Map<String, Object> param = new ParamMap<>();int i = 0;for (Map.Entry<Integer, String> entry : names.entrySet()) {param.put(entry.getValue(), args[entry.getKey()]);// add generic param names (param1, param2, ...)final String genericParamName = GENERIC_NAME_PREFIX + String.valueOf(i + 1);// ensure not to overwrite parameter named with @Paramif (!names.containsValue(genericParamName)) {param.put(genericParamName, args[entry.getKey()]);}i++;}return param;}}
}

TypeParameterResolver 关于Type类型的解析器,主要关于泛型

public class TypeParameterResolver {/*** @return The field type as {@link Type}. If it has type parameters in the declaration,<br>*         they will be resolved to the actual runtime {@link Type}s.*///解析Field类型public static Type resolveFieldType(Field field, Type srcType) {//属性定义Type fieldType = field.getGenericType();//属性定义的类Class<?> declaringClass = field.getDeclaringClass();//解析类型return resolveType(fieldType, srcType, declaringClass);}//解析方法返回类型  public static Type resolveReturnType(Method method, Type srcType) {//返回属性类型Type returnType = method.getGenericReturnType();//返回属性类Class<?> declaringClass = method.getDeclaringClass();//解析类型return resolveType(returnType, srcType, declaringClass);}
//解析方法参数的类型数组public static Type[] resolveParamTypes(Method method, Type srcType) {Type[] paramTypes = method.getGenericParameterTypes();Class<?> declaringClass = method.getDeclaringClass();Type[] result = new Type[paramTypes.length];for (int i = 0; i < paramTypes.length; i++) {//逐个解析类型result[i] = resolveType(paramTypes[i], srcType, declaringClass);}return result;}
//解析Type类型private static Type resolveType(Type type, Type srcType, Class<?> declaringClass) {//类型变量if (type instanceof TypeVariable) {return resolveTypeVar((TypeVariable<?>) type, srcType, declaringClass);//参数化类型} else if (type instanceof ParameterizedType) {return resolveParameterizedType((ParameterizedType) type, srcType, declaringClass);//数组类型} else if (type instanceof GenericArrayType) {return resolveGenericArrayType((GenericArrayType) type, srcType, declaringClass);} else {return type;}}
//解析数组类型private static Type resolveGenericArrayType(GenericArrayType genericArrayType, Type srcType, Class<?> declaringClass) {//例如T[],则为TType componentType = genericArrayType.getGenericComponentType();Type resolvedComponentType = null;if (componentType instanceof TypeVariable) {resolvedComponentType = resolveTypeVar((TypeVariable<?>) componentType, srcType, declaringClass);} else if (componentType instanceof GenericArrayType) {resolvedComponentType = resolveGenericArrayType((GenericArrayType) componentType, srcType, declaringClass);} else if (componentType instanceof ParameterizedType) {resolvedComponentType = resolveParameterizedType((ParameterizedType) componentType, srcType, declaringClass);}if (resolvedComponentType instanceof Class) {return Array.newInstance((Class<?>) resolvedComponentType, 0).getClass();} else {//封装return new GenericArrayTypeImpl(resolvedComponentType);}}
//解析参数化类型private static ParameterizedType resolveParameterizedType(ParameterizedType parameterizedType, Type srcType, Class<?> declaringClass) {//解析实例的泛型类型Class<?> rawType = (Class<?>) parameterizedType.getRawType();Type[] typeArgs = parameterizedType.getActualTypeArguments();Type[] args = new Type[typeArgs.length];for (int i = 0; i < typeArgs.length; i++) {if (typeArgs[i] instanceof TypeVariable) {args[i] = resolveTypeVar((TypeVariable<?>) typeArgs[i], srcType, declaringClass);} else if (typeArgs[i] instanceof ParameterizedType) {args[i] = resolveParameterizedType((ParameterizedType) typeArgs[i], srcType, declaringClass);} else if (typeArgs[i] instanceof WildcardType) {args[i] = resolveWildcardType((WildcardType) typeArgs[i], srcType, declaringClass);} else {args[i] = typeArgs[i];}}return new ParameterizedTypeImpl(rawType, null, args);}
//解析 WildcardType 类型private static Type resolveWildcardType(WildcardType wildcardType, Type srcType, Class<?> declaringClass) {//解析泛型表达式的下界(super)Type[] lowerBounds = resolveWildcardTypeBounds(wildcardType.getLowerBounds(), srcType, declaringClass);//解析泛型表达式的上届(extends)Type[] upperBounds = resolveWildcardTypeBounds(wildcardType.getUpperBounds(), srcType, declaringClass);return new WildcardTypeImpl(lowerBounds, upperBounds);}private static Type[] resolveWildcardTypeBounds(Type[] bounds, Type srcType, Class<?> declaringClass) {Type[] result = new Type[bounds.length];for (int i = 0; i < bounds.length; i++) {if (bounds[i] instanceof TypeVariable) {result[i] = resolveTypeVar((TypeVariable<?>) bounds[i], srcType, declaringClass);} else if (bounds[i] instanceof ParameterizedType) {result[i] = resolveParameterizedType((ParameterizedType) bounds[i], srcType, declaringClass);} else if (bounds[i] instanceof WildcardType) {result[i] = resolveWildcardType((WildcardType) bounds[i], srcType, declaringClass);} else {result[i] = bounds[i];}}return result;}private static Type resolveTypeVar(TypeVariable<?> typeVar, Type srcType, Class<?> declaringClass) {Type result = null;Class<?> clazz = null;if (srcType instanceof Class) {clazz = (Class<?>) srcType;} else if (srcType instanceof ParameterizedType) {ParameterizedType parameterizedType = (ParameterizedType) srcType;clazz = (Class<?>) parameterizedType.getRawType();} else {throw new IllegalArgumentException("The 2nd arg must be Class or ParameterizedType, but was: " + srcType.getClass());}if (clazz == declaringClass) {Type[] bounds = typeVar.getBounds();if(bounds.length > 0) {return bounds[0];}return Object.class;}Type superclass = clazz.getGenericSuperclass();result = scanSuperTypes(typeVar, srcType, declaringClass, clazz, superclass);if (result != null) {return result;}Type[] superInterfaces = clazz.getGenericInterfaces();for (Type superInterface : superInterfaces) {result = scanSuperTypes(typeVar, srcType, declaringClass, clazz, superInterface);if (result != null) {return result;}}return Object.class;}private static Type scanSuperTypes(TypeVariable<?> typeVar, Type srcType, Class<?> declaringClass, Class<?> clazz, Type superclass) {if (superclass instanceof ParameterizedType) {ParameterizedType parentAsType = (ParameterizedType) superclass;Class<?> parentAsClass = (Class<?>) parentAsType.getRawType();TypeVariable<?>[] parentTypeVars = parentAsClass.getTypeParameters();if (srcType instanceof ParameterizedType) {parentAsType = translateParentTypeVars((ParameterizedType) srcType, clazz, parentAsType);}if (declaringClass == parentAsClass) {for (int i = 0; i < parentTypeVars.length; i++) {if (typeVar == parentTypeVars[i]) {return parentAsType.getActualTypeArguments()[i];}}}if (declaringClass.isAssignableFrom(parentAsClass)) {return resolveTypeVar(typeVar, parentAsType, declaringClass);}} else if (superclass instanceof Class && declaringClass.isAssignableFrom((Class<?>) superclass)) {return resolveTypeVar(typeVar, superclass, declaringClass);}return null;}private static ParameterizedType translateParentTypeVars(ParameterizedType srcType, Class<?> srcClass, ParameterizedType parentType) {Type[] parentTypeArgs = parentType.getActualTypeArguments();Type[] srcTypeArgs = srcType.getActualTypeArguments();TypeVariable<?>[] srcTypeVars = srcClass.getTypeParameters();Type[] newParentArgs = new Type[parentTypeArgs.length];boolean noChange = true;for (int i = 0; i < parentTypeArgs.length; i++) {if (parentTypeArgs[i] instanceof TypeVariable) {for (int j = 0; j < srcTypeVars.length; j++) {if (srcTypeVars[j] == parentTypeArgs[i]) {noChange = false;newParentArgs[i] = srcTypeArgs[j];}}} else {newParentArgs[i] = parentTypeArgs[i];}}return noChange ? parentType : new ParameterizedTypeImpl((Class<?>)parentType.getRawType(), null, newParentArgs);}private TypeParameterResolver() {super();}
//封装参数化类型static class ParameterizedTypeImpl implements ParameterizedType {//例如Listprivate Class<?> rawType;
//这个属性的所有者private Type ownerType;
//<>中的实际类型private Type[] actualTypeArguments;public ParameterizedTypeImpl(Class<?> rawType, Type ownerType, Type[] actualTypeArguments) {super();this.rawType = rawType;this.ownerType = ownerType;this.actualTypeArguments = actualTypeArguments;}@Overridepublic Type[] getActualTypeArguments() {return actualTypeArguments;}@Overridepublic Type getOwnerType() {return ownerType;}@Overridepublic Type getRawType() {return rawType;}@Overridepublic String toString() {return "ParameterizedTypeImpl [rawType=" + rawType + ", ownerType=" + ownerType + ", actualTypeArguments=" + Arrays.toString(actualTypeArguments) + "]";}}
//实现类static class WildcardTypeImpl implements WildcardType {//下界private Type[] lowerBounds;
//上界private Type[] upperBounds;WildcardTypeImpl(Type[] lowerBounds, Type[] upperBounds) {super();this.lowerBounds = lowerBounds;this.upperBounds = upperBounds;}@Overridepublic Type[] getLowerBounds() {return lowerBounds;}@Overridepublic Type[] getUpperBounds() {return upperBounds;}}
//数组类型的实现类static class GenericArrayTypeImpl implements GenericArrayType {private Type genericComponentType;GenericArrayTypeImpl(Type genericComponentType) {super();this.genericComponentType = genericComponentType;}@Overridepublic Type getGenericComponentType() {return genericComponentType;}}
}

ArrayUtil 数组工具类

public class ArrayUtil {public static int hashCode(Object obj) {if (obj == null) {// for consistency with Arrays#hashCode() and Objects#hashCode()return 0;}//普通类final Class<?> clazz = obj.getClass();if (!clazz.isArray()) {return obj.hashCode();}//数组类型final Class<?> componentType = clazz.getComponentType();if (long.class.equals(componentType)) {return Arrays.hashCode((long[]) obj);} else if (int.class.equals(componentType)) {return Arrays.hashCode((int[]) obj);} else if (short.class.equals(componentType)) {return Arrays.hashCode((short[]) obj);} else if (char.class.equals(componentType)) {return Arrays.hashCode((char[]) obj);} else if (byte.class.equals(componentType)) {return Arrays.hashCode((byte[]) obj);} else if (boolean.class.equals(componentType)) {return Arrays.hashCode((boolean[]) obj);} else if (float.class.equals(componentType)) {return Arrays.hashCode((float[]) obj);} else if (double.class.equals(componentType)) {return Arrays.hashCode((double[]) obj);} else {return Arrays.hashCode((Object[]) obj);}}public static boolean equals(Object thisObj, Object thatObj) {if (thisObj == null) {return thatObj == null;} else if (thatObj == null) {return false;}final Class<?> clazz = thisObj.getClass();if (!clazz.equals(thatObj.getClass())) {return false;}//普通类if (!clazz.isArray()) {return thisObj.equals(thatObj);}//数组类final Class<?> componentType = clazz.getComponentType();if (long.class.equals(componentType)) {return Arrays.equals((long[]) thisObj, (long[]) thatObj);} else if (int.class.equals(componentType)) {return Arrays.equals((int[]) thisObj, (int[]) thatObj);} else if (short.class.equals(componentType)) {return Arrays.equals((short[]) thisObj, (short[]) thatObj);} else if (char.class.equals(componentType)) {return Arrays.equals((char[]) thisObj, (char[]) thatObj);} else if (byte.class.equals(componentType)) {return Arrays.equals((byte[]) thisObj, (byte[]) thatObj);} else if (boolean.class.equals(componentType)) {return Arrays.equals((boolean[]) thisObj, (boolean[]) thatObj);} else if (float.class.equals(componentType)) {return Arrays.equals((float[]) thisObj, (float[]) thatObj);} else if (double.class.equals(componentType)) {return Arrays.equals((double[]) thisObj, (double[]) thatObj);} else {return Arrays.equals((Object[]) thisObj, (Object[]) thatObj);}}/*** If the {@code obj} is an array, toString() method of {@link Arrays} is called. Otherwise* {@link Object#toString()} is called. Returns "null" if {@code obj} is <code>null</code>.* * @param obj*          An object. May be an array or <code>null</code>.* @return String representation of the {@code obj}.*/public static String toString(Object obj) {if (obj == null) {return "null";}final Class<?> clazz = obj.getClass();//普通类if (!clazz.isArray()) {return obj.toString();}//数组类final Class<?> componentType = obj.getClass().getComponentType();if (long.class.equals(componentType)) {return Arrays.toString((long[]) obj);} else if (int.class.equals(componentType)) {return Arrays.toString((int[]) obj);} else if (short.class.equals(componentType)) {return Arrays.toString((short[]) obj);} else if (char.class.equals(componentType)) {return Arrays.toString((char[]) obj);} else if (byte.class.equals(componentType)) {return Arrays.toString((byte[]) obj);} else if (boolean.class.equals(componentType)) {return Arrays.toString((boolean[]) obj);} else if (float.class.equals(componentType)) {return Arrays.toString((float[]) obj);} else if (double.class.equals(componentType)) {return Arrays.toString((double[]) obj);} else {return Arrays.toString((Object[]) obj);}}}

ExceptionUtil 异常工具类

public class ExceptionUtil {private ExceptionUtil() {// Prevent Instantiation}public static Throwable unwrapThrowable(Throwable wrapped) {//去掉包装后的异常Throwable unwrapped = wrapped;while (true) {if (unwrapped instanceof InvocationTargetException) {unwrapped = ((InvocationTargetException) unwrapped).getTargetException();} else if (unwrapped instanceof UndeclaredThrowableException) {unwrapped = ((UndeclaredThrowableException) unwrapped).getUndeclaredThrowable();} else {return unwrapped;}}}}
查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. 小菜成长之路,警惕沦为 API 调用侠

    小菜(化名)在某互联网公司担任运维工程师,负责公司后台业务的运维保障工作。由于自己编程经验不多,平时有不少工作需要开发协助。 听说 Python 很火,能快速开发一些运维脚本,小菜也加入 Python 大军学起来。 Python 语言确实简单,小菜很快就上手了,觉得自己应对运维开发工…...

    2024/4/24 12:41:28
  2. 实验一:求整数和、铺地板和Hanoi塔等问题的求解

    实验一:求整数和、铺地板和Hanoi塔等问题的求解 一、问题描述整数求和: 从1到n之间的整数相加,和是多少? 用C语言实现函数,输入n,返回和; 铺地板问题: 在2n的矩形中铺入12大小的地板,求其有多少种铺法; Hanoi塔问题: 一次只能移动一层,大的不能放在小的上面。可以使…...

    2024/4/24 12:41:28
  3. 都jdk14了,后浪的你还不会使用lambda表达式吗?

    一、函数式接口 1、函数式接口定义学习lambda表达式之前,先来了解一下函数式接口:只有一个抽象方法的接口 可使用@FunctionalInterface 注解声明和检查函数式接口 java.util.function 包下定义了丰富的函数式接口2、Java四大函数式接口函数式接口 参数类型 返回类型 用途Cons…...

    2024/4/28 2:01:22
  4. LeetCode(中等)每日温度(c#)

    这道题解答之前先看下堆栈的基础知识,C#中对应堆栈的集合是如下 Stack堆栈 后进先出 Queue队列 先进先出 栈 后进先出 堆 先进先出 根据每日 气温 列表,请重新生成一个列表,对应位置的输出是需要再等待多久温度才会升高超过该日的天数。如果之后都不会升高,请在该位置用 0 …...

    2024/4/24 12:41:25
  5. 习题1-4,1-9 ,1-10类别:通信原理

    1-4一个由字母A,B,C,D组成的字,对于传输的每一个字母用二进制脉冲编码,00代替A,01代替B,10代替C,11代替D,每个脉冲宽度为5ms。 (1)不同的字母是等可能出现时,试计算传输的平均信息速率 (2)若每个字母出现的可能性分别为 p( A) = 1/5 p( B) = 1/4 p( C) = 1/4 p( D) = 3/…...

    2024/4/28 11:46:26
  6. PHP 之设计模式学习笔记 - 单例模式

    PHP 之设计模式学习笔记 - 单例模式(自用) 目的: 节约资源,避免浪费资源 实现: 构造方法私有化 class Test {protected static $type;/*** Factory constructor.*/private function __construct(){}/*** 静态方法实现私有化* @return Factory*/public static function get…...

    2024/4/28 2:30:28
  7. Android 中如何导入依赖包

    因为版本更新比较快,所以有的时候会导致不知道依赖包的版本, 方法一 快捷键: ctrl+alt+shift+s ,直接弹出方法二 刚开始不知道导入依赖包有快捷键 每次导入依赖包,就会不知道怎么导入。后来发现了一个笨办法。 进入app/bulid.gradle文件,将dependencies包中已经有的语句复…...

    2024/4/24 12:41:22
  8. 阿里云服务器 Docker 安装

    安装 Docker# 1、卸载旧版本 yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine # 2、安装需要的包 yum install -y yum-utils # 3、设置镜像仓库 yum-config-manager \--add…...

    2024/4/28 5:13:21
  9. ROS 安装

    遇到无数的坑,尤其是最后的步骤,按照下面这个网页操作,终于OK了。https://blog.csdn.net/qq_17685565/article/details/105741864https://blog.csdn.net/smallfreshfish/article/details/106177487https://blog.csdn.net/weixin_39954922/article/details/81161226问题:ERR…...

    2024/4/28 11:56:00
  10. 基于Hadoop海量日志的入侵检测技术

    基于Hadoop海量日志的入侵检测技术Hadoop相关技术 Web日志 基于 Hadoop海量日志的入侵检测算法 基于 Hadoop量日志的入侵检测系统的实现Hadoop简介 Hadoop是一个项目的总称,是开源实现的谷歌的集群系统。由于在 Hadoop中实现了HDFS文件系统和 MapReduce编程模型,使得它成为了…...

    2024/4/27 22:56:26
  11. MFC中Edit Control控件设置内容的四种方法

    方法一:使用GetDlgItem() GetDlgItem(IDC_EDIT8)->SetWindowText(str);方法二:根据CWnd静态方法SetDlgItemTextW或SetDlgItemTextW CWnd::SetDlgItemTextA(IDC_EDIT8, str);方法三:通过控件变量来设置 m_Edit2.SetWindowTextW(L"hello world");方法四:通过句柄…...

    2024/4/24 12:41:18
  12. 计算机考研复试之常问问题篇(3)

    常问问题(3) 1. 图的存储方式,优缺点?连通性的判断 我们知道,对于图而言,最重要的是点集和边集; 对于存储方式,主要是顺序存储和链式存储; (一)邻接矩阵 邻接矩阵是表示顶点之间相邻关系的矩阵。 邻接矩阵的好处: (1)直观、简单、好理解 (2)方便检查任意一对定…...

    2024/4/17 0:23:11
  13. 6.2符号的模拟——算术

    6数学与计算6.1语句与公式6.2符号的模拟——算术从历史与逻辑二方面考察,算术——自然数的理论是的基础。今天看来很简单的算术,历史上经历过数千年的发展才成为今天的样式。人类个体学习经历也与此对应,每个正常人从呀呀学语时就开始接触到数数,之后经历过漫长的幼儿园与小…...

    2024/4/15 4:26:48
  14. 回溯法和动态规划轻松解决Combination Sum IV问题

    目录一、回溯法简介 二、动态规划简介三、题目四、实现1、思路2、递归求解3、递归代码+dp五、总结一、回溯法简介回溯法(探索与回溯法)是一种选优搜索法,又称为试探法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步…...

    2024/4/15 4:26:48
  15. Centos7的VI编辑

    CENTOS进去vi编辑退出当你通过vi/vim更改文件之后,1,按 ” i “ 进入编辑状态。2,按“Esc“键,退出”insert“模式,3,然后输入冒号(:),紧接着输入下面的命令:q!(不保存退出)或者:按下Esc键退出编辑模式,输入:wq 保存并关闭文件。:w 保存文件但不退出4102vi :w f…...

    2024/4/15 4:26:46
  16. 【一切不可复制的文档都适用】看完 !搞定圣才电子书转PDF、TXT文本、word或者epub、mobi

    最近很多人问我圣才电子书怎么复制怎么弄怎么弄怎么弄,急的火帽三丈首先我们拿到圣才电子书有点怪怪的,为什么是exe格式的,看上去确实很高大上但是没办法复制摘抄啊,没办法搞进去kindle进去看啊mobi 还有epub等等格式的电子书阅读器有些人就懵逼了嘛下面我们讲一下方法和策…...

    2024/4/24 12:41:17
  17. FastDFS

    1、FastDFS:图片统一部署框架 当客户端传输图片到后台时,如果后台是tomcat集群,此时只有一个tomcat存有图片的资源,当下次访问时,如果访问的不是这个tomcat,就会出现问题,所以需要一个第三方服务来存储图片,再次访问时只需要后台去调用这个第三方服务即可。 2、工作流程…...

    2024/4/24 12:41:16
  18. cv2.moments()报错

    (-210:Unsupported format or combination of formats) in function ‘cv::moments’ 原始程序报错部分: from cv2 import moments #计算外边缘质心 M = cv2.moments(outer_edge+0) center_x = int(M["m10"] / M["m00"]) center_y = int(M["m01&quo…...

    2024/4/24 12:41:16
  19. Q739.每日温度

    Q739.每日温度 根据每日 气温 列表,请重新生成一个列表,对应位置的输出是需要再等待多久温度才会升高超过该日的天数。如果之后都不会升高,请在该位置用 0 来代替。 例如,给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是 [1, 1, 4, 2, 1, 1…...

    2024/4/24 12:41:14
  20. 关系查询处理和优化

    1、查询处理步骤:1.1 查询分析1.2 查询检查1.3 查询优化1.4 查询执行2、查询优化分类:2.1 代数优化:指关系代数表达式的优化2.2 物理优化:指存取路径和底层操作算法的选择1.1 查询分析:词法分析:从查询语句中识别出正确的语言符号 进行语法检查1.2 查询检查: 1.2.1有效…...

    2024/4/24 12:41:13

最新文章

  1. 如何用OceanBase的 Load Data 导入CSV文件

    0 前言 CSV文件&#xff08;Comma-Separated Values&#xff0c;字符分隔值&#xff09;是一种普遍采用的数据存储格式&#xff0c;有不少企业和机构都用它来进行数据的管理和存储。身为开发者&#xff0c;您可能经常遇到这样的需求&#xff1a;需要将CSV的数据导入OceanBase数…...

    2024/4/28 13:41:47
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. 【Locust分布式压力测试】

    Locust分布式压力测试 https://docs.locust.io/en/stable/running-distributed.html Distributed load generation A single process running Locust can simulate a reasonably high throughput. For a simple test plan and small payloads it can make more than a thousan…...

    2024/4/27 9:20:29
  4. 蓝桥杯第十五届抱佛脚(十)贪心算法

    蓝桥杯第十五届抱佛脚&#xff08;十&#xff09;贪心算法 贪心算法基本概念 贪心算法是一种在算法设计中常用的方法&#xff0c;它在每一步选择中都采取在当前状态下最好或最优&#xff08;即最有利&#xff09;的选择&#xff0c;从而希望导致结果是最好或最优的算法。 贪…...

    2024/4/19 0:49:59
  5. K8S容器空间不足问题分析和解决

    如上图&#xff0c;今天测试环境的K8S平台出现了一个问题&#xff0c;其中的一个容器报错&#xff1a;Free disk space below threshold. Available: 3223552 bytes (threshold: 10485760B)&#xff0c;意思服务器硬盘空间不够了。这个问题怎么产生的&#xff0c;又怎么解决的呢…...

    2024/4/23 6:25:22
  6. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/4/26 18:09:39
  7. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/4/28 3:28:32
  8. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/4/26 23:05:52
  9. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/4/27 4:00:35
  10. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/4/27 17:58:04
  11. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/4/27 14:22:49
  12. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/4/28 1:28:33
  13. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/4/27 9:01:45
  14. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/4/27 17:59:30
  15. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/4/25 18:39:16
  16. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/4/28 1:34:08
  17. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/4/26 19:03:37
  18. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/4/28 1:22:35
  19. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/4/25 18:39:14
  20. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/4/26 23:04:58
  21. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/4/27 23:24:42
  22. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/4/28 5:48:52
  23. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/4/26 19:46:12
  24. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/4/27 11:43:08
  25. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/4/27 8:32:30
  26. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  27. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  28. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  29. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  30. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  31. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  32. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  33. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  34. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  35. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  36. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  37. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  38. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  39. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  40. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  41. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  42. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  43. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  44. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  45. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57