Programa rodando infinitamente

O código basicamente é: pede um número, a partir dele gerar um vetor na função generateVector.
Quando eu rodo, ele pede o número, e depois fica no running para sempre.
Alguém com alguma solução para isso?

import java.util.Scanner;

public class Atividade02 {
    static Scanner dados = new Scanner(System.in);
    static int n;
    static int[] VetorA = new int [n];
    public static int[] generateVector(int n){
        
        for (int i=0; i<n; i++){
        VetorA[i] = dados.nextInt();
        }
        return VetorA;
    }
    
    public static void main(String args[]){
        System.out.println("Digite um numero: ");
        n = dados.nextInt();
        generateVector(n);
                    for(int i=0; i<n; i++){
            System.out.println("Posicao ["+i+"]: "+ VetorA[i]);
        }
  }
}

Para ler dados de input do utilizador, utiliza apenas o método nextLine do Scanner e não o nextInt (terás de fazer parse para int)

Programa corrigido:

Eu decidi nem mudar nada do seu programa, somente corrigir os pontos que estavam dando problema…

Segue abaixo:

static Scanner dados = new Scanner(System.in); static int[] vetorA; static int n; public static int[] generateVector(int n){ vetorA = new int[n]; for (int i=0; i<n; i++){ vetorA[i] = dados.nextInt(); } return vetorA; } public static void main(String args[]){ System.out.println("Digite um numero: "); n = dados.nextInt(); generateVector(n); for(int i=0; i<n; i++){ System.out.println("Posicao ["+i+"]: "+ vetorA[i]); } }